Sam Dark, ты избранный и должен уничтожить матрицудумаю, ты его спасаешь, этот yii
В контексте еще и твоих высказываний в других темах я теперь вообще не понимаю, что ты из Yii используешь. Получается, что только базовый уровень бутстрап-роутинг-контроллер-конфиги? А не проще тогда Symfony Appkernel взять? =)я приведения не замечаю потому что у меня основная бизнес-логика в собственных моделях с plain sql или query builder, а ActiveRecord - в основном в роли DbTableGateway
Ой, что, все так плохо? Я думал, сначала матчится роут, а рефлексия уже только когда известен controller и action, чтобы передать параметры. В laravel-е, по крайней мере, так.У меня 70% трафика на /, пройти через десяток объектов и рефлексию чтобы проверить какие параметры принимает контроллер при GET-запросе к / для меня overkill.
Нужно смачнее рассказывать: «сотни объектов», «тяжёлая рефлексия», «десятки аргументов контроллера», «экономия – миллионы долларов» и т.д.А роутинг у меня, наоборот, хакнутый. У меня 70% трафика на /, пройти через десяток объектов и рефлексию чтобы проверить какие параметры принимает контроллер при GET-запросе к / для меня overkill.
Кстати, тут напрашивается DataMapper по типу Analogue, только для Yii, удобнее будет, и почти ничего не изменится в остальном коде. Можно даже сделать, чтобы ClassName::model() отдавал репозиторий, хи-хи.я приведения не замечаю потому что у меня основная бизнес-логика в собственных моделях с plain sql или query builder, а ActiveRecord - в основном в роли DbTableGateway
Ой, что, все так плохо? Я думал, сначала матчится роут, а рефлексия уже только когда известен controller и action, чтобы передать параметры. В laravel-е, по крайней мере, так.
Не плохо, все так же - создали controller и action, рефлексией посмотрели на список аргументов, проверили, фильтр, колбеки, события, исполнение.Конечно не всё так плохо
а потом космические корабли бороздят просторыНужно смачнее рассказывать: «сотни объектов»
public function processRequest() {
if ($_SERVER['REQUEST_URI'] === '/') {
$controller = new \desktop\FlatCatalogAuctionController('flatCatalogAuction',$this);
$this->setController($controller);
$controller->init();
$controller->actionIndex();
экшен сделать компонентом yii?использовал action как сервисы, очень удобно и быстро получается, в твоем случае как раз может получится проще архитектура и все будет шустрее работать.
Ибо лучше делать экшены сервисом.
Можно в роутере заговнокодить вызов экшен-сервиса через сервис локатор (Yii::app()), минуя поиск контроллера и рефликсию.
Сейчас с php 5.5 SL первого Yii, можно построить на анонимках.
угу, попробуй локально поигратьсяэкшен сделать компонентом yii?
0_о в симфони это решаетсяОхренеть у вас сложности. В Symfony HttpKernel это решается всего лишь одним listener'ом KernelsEvents::REQUEST. Только толку от таких оптимизаций.
hello_world:
path: /
defaults: { _controller: hello_app.action.hello:run }
Имеется в виду, чтобы до роутера дело не доходило. К тому же HttpKernel более общая штука, которую некоторые юзают и без full-stack Symfony.0_о в симфони это решается
зачем усложняешь?Код:hello_world: path: / defaults: { _controller: hello_app.action.hello:run }