Сегодня 13 июля, воскресенье ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7281
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
RMCreative.ru - Блог
RMCreative.ru - Блог
Голосов: 1
Адрес блога: http://rmcreative.ru/feed/
Добавлен: 2008-06-12 21:34:00 блограйдером ZaiSL
 

URL в консольном приложении Yii

2012-09-19 15:45:27 (читать в оригинале)

Часто требуется в консольном приложении Yii получить гиперссылки на веб-приложение. Например, для почтовых рассылок по крону. По умолчанию консольное приложение ничего не знает о URL веб приложения, но это исправляется через конфиг.

Для начала вынесем все правила URL в отдельный конфиг.

protected/config/main.php:

return array(
    // ...
    'components'=>array(
        'urlManager' => array(
            'urlFormat' => 'path',
            'showScriptName' => false,
            'rules' => require('urls.php'),
        ),
    ),
    // ...
);

Сам urls.php будет таким:

return array(
    '<controller:\w+>/<id:\d+>'=>'<controller>/view',
    '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
    '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
);

Ну и теперь просто продублируем конфигурацию urlManager для консольного приложения:

protected/config/console.php:

return array(
    // ...
    'components'=>array(
        'urlManager' => array(
            'urlFormat' => 'path',
            'showScriptName' => false,
            'rules' => require('urls.php'),
        ),
    ),
    // ...
);

Так как в консоли у нас нет методов для создания URL непосредственно в Yii::app(), используем компонент:

echo 'http://example.com/'.Yii::app()->urlManager->createUrl('blog/post', array('id' => 123));



 


Самый-самый блог
Блогер ЖЖ все стерпит
ЖЖ все стерпит
по количеству голосов (152) в категории «Истории»


Загрузка...Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.