YiiFramework YIi2 + CMS

StalkerClasses

Новичок
Получилось у меня запустить Yii2 в CMS.
Пока обрабатывается один единственный элемент - это страница.
Вызываю "new yii\web\Application($config))->run()".

Но есть вопросы:
1. как мне Yii2 показать что это Id-такой-то страницы?
2. есть необходимость использовать более двух объектов run на странице - часть будет для страницы, часть будет для элементов содержимого, но для них нужно по разному настроить обработку роутеров.
 

StalkerClasses

Новичок
Код:
                $GLOBALS['_GET']['r'] = 'page/index';
                $config = require PATH . 'config/web.php';
                ob_start();
                    (new yii\web\Application($config))->run();
                $content = ob_get_clean();
                return $content;
Нашел пока только вот такой вариант запуска.
Сверху дописав: $GLOBALS['_GET']['r'] = 'page/index';
 

fixxxer

К.О.
Партнер клуба
Что-то ты странное очень делаешь.

Судя по твоим соседним темам, ты хочешь что-то вроде виджетов сделать, которые вызываются извне, по принципу "статически собранных микросервисов", ну или по принципу angular-компонентов.
Зачем тебе там вообще полный MVC-фреймворк (тем более такой монолит, как Yii)? Зачем на этом уровне HTTP-роутер, билдер HTTP-ответов, обработчик исключений и прочее вот это все?
Я бы на твоем месте собирал такую штуку из отдельных библиотек. Взял какую-нибудь ORM, какой-нибудь template engine, какой-нибудь DI container, и соорудил бы вокруг этого какой-нибудь простейший диспетчер вызовов.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
.... HTTP-роутер, билдер HTTP-ответов, обработчик исключений и прочее ....
ORM, какой-нибудь template engine, какой-нибудь DI container, и соорудил бы....
Нащальника, синий изолента заматал, пащиму ниработаииит??
 

fixxxer

К.О.
Партнер клуба
Нащальника, синий изолента заматал, пащиму ниработаииит??
Код:
                $GLOBALS['_GET']['r'] = 'page/index';
                $config = require PATH . 'config/web.php';
                ob_start();
                    (new yii\web\Application($config))->run();
                $content = ob_get_clean();
                return $content;
Нашел пока только вот такой вариант запуска.
Сверху дописав: $GLOBALS['_GET']['r'] = 'page/index';
А это как называется? :)

Кстати, тут наверняка будет ситуация "ниработаит", когда в yii::app (или как его там) закэшируется какая-нибудь stateful-фигня, или где-нибудь внутрях обнаружится stateful же синглтон.
 
Последнее редактирование:

StalkerClasses

Новичок
Пока все работает.
На что можно заменить GLOBALS['_GET']['r'] - на что то более изящное?
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Взял какую-нибудь ORM, какой-нибудь template engine, какой-нибудь DI container, и соорудил бы вокруг этого какой-нибудь простейший диспетчер вызовов.
О! Расскажи, какие ORM нормальные есть? Чтобы помогало писать код без написания такого же объема макросов или конфигов, и не занимало 80% времени вызова.
 

fixxxer

К.О.
Партнер клуба
О! Расскажи, какие ORM нормальные есть? Чтобы помогало писать код без написания такого же объема макросов или конфигов, и не занимало 80% времени вызова.
Для write models - analogue.
Для read models - ну, не знаю, вот тот же atk4 вроде подойдет. Я ручками.

В идеале хотелось бы что-то вроде ROM для php, но не в курсе о наличии таковых.
 

StalkerClasses

Новичок
Имею в виду я могу заменить:
на что то вроде этого...

(new ReflectionClass(\yii\web\Request::class))->setController('page')->setAction('index');
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Для write models - analogue.
А какой микрофреймворк ты с ним используешь? В моей реальности половина задач выполняется в офлайне демоном или по крону. Что ты используешь для демонов и CLI?
 
Последнее редактирование:
Сверху