yii без mvc

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
kukuruku
Сообщения: 1318
Зарегистрирован: 2011.02.14, 11:36

yii без mvc

Сообщение kukuruku »

есть сайт на голом пхп, решил подключить yii для работы с базой через AR
хочу отрендерить грид, выражение Yii::app()->controller->widget не работает, с этим вопросов нет
пробовал так CController::widget, тоже не работает
есть способ, или не получится?
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: yii без mvc

Сообщение samdark »

Без MVC инстанса контроллера нет.
kukuruku
Сообщения: 1318
Зарегистрирован: 2011.02.14, 11:36

Re: yii без mvc

Сообщение kukuruku »

в любом случае прийдется вызывать Yii::createWebApplication($config)->run();?
других вариантов нет?
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: yii без mvc

Сообщение samdark »

Может и есть. Сходу не придумываются.
Аватара пользователя
ToxaDR
Сообщения: 87
Зарегистрирован: 2012.06.26, 23:03

Re: yii без mvc

Сообщение ToxaDR »

ох... что только люди не придумывают чтобы усложнить себе жизнь
перепешите сайт с нуля на Yii, это займет меньше времени, нервов, да и расширять будет возможно.
Аватара пользователя
skillz
Сообщения: 5
Зарегистрирован: 2013.03.28, 15:17
Откуда: Нижний Новгород

Re: yii без mvc

Сообщение skillz »

Как то так я делал. Но я надеюсь, вы понимаете, что это костыльно-ориентированное программирование)).

Код: Выделить всё

Yii::createWebApplication($config);
class NewsStatController extends CController
{
    public function createUrl($route,$params=array(),$ampersand='&')
    {
        return Yii::app()->createUrl(trim($route,'/'),$params,$ampersand);
    }
}
$controller = new NewsStatController('idNewsStat');
Yii::app()->setController($controller);
$controller->widget('zii.widgets.grid.CGridView',$gridParams);
Если не нужна сортировка и пагинация можно вообще без контроллера обойтись - через виджет-фабрику.
kukuruku
Сообщения: 1318
Зарегистрирован: 2011.02.14, 11:36

Re: yii без mvc

Сообщение kukuruku »

спасибо, работает
а как через фабрику сделать?
пробовал вызвать через http://www.yiiframework.com/doc/api/1.1 ... get-detail (CWidgetFactory::createWidget) но не получилось
я так подозреваю, что в createWidget надо передать текущий контроллер, чтобы в него вывести виджет?
kukuruku
Сообщения: 1318
Зарегистрирован: 2011.02.14, 11:36

Re: yii без mvc

Сообщение kukuruku »

нашел такой способ запуска виджета

Код: Выделить всё

$widget = new CWidget;
$widget->widget('zii.widgets.grid.CGridView', array());
 
игрался с CWidgetFactory, но отрендерить не получилось
Аватара пользователя
skillz
Сообщения: 5
Зарегистрирован: 2013.03.28, 15:17
Откуда: Нижний Новгород

Re: yii без mvc

Сообщение skillz »

Код: Выделить всё

$controller = NULL;
$widget=Yii::app()->getWidgetFactory()->createWidget($controller,'zii.widgets.grid.CGridView',$gridParams);
$widget->init();
$widget->run();
 
Еще раз повторю, что это костыльный костыль.
Вот ссылки на сорцы в ядре. Способ взят оттуда.
https://github.com/yiisoft/yii/blob/1.1 ... r.php#L160
https://github.com/yiisoft/yii/blob/1.1 ... r.php#L144
kukuruku
Сообщения: 1318
Зарегистрирован: 2011.02.14, 11:36

Re: yii без mvc

Сообщение kukuruku »

мой способ все же красивее
Ответить