vladamir
@vladamir

Как организовать контроллеры в Silex?

Я делал сначала через сервисы их

class StatsController{

    protected $app;

    function __construct(Application $app){

        $this->model = new Stats($this->app);

        if(UserHelper::isOnlySalesManager($this->app)){
            $this->model->isSalesManager  = true;
        }
    }
}


Тогда приходилось каждый контроллер вызывать отдельно в init.php, отдавая в конструктор экземпляр приложения

Это нужно исправить, чтобы они сами загружались.

В роутах тогда прописываю роут с указанием экшена

$admin->get('/stat', 'Controllers\\StatsController::dailyAction')


Тогда все бы ничего, но вконструкторе контроллера теперь не будет доступна $app - что приведет к реорганизации структуры. Может есть способы, как можно не используя контроллеры как сервисы, в конструкторе контроллера получать экземпляр приложения? Чтобы там уже вытаскивать общие куски кода. Спасибо.
  • Вопрос задан
  • 569 просмотров
Пригласить эксперта
Ответы на вопрос 2
@miy
В Slim framework использовал так:

$app->get('/main/:param', function ($param) use($app) {
     (new \Controllers\Main($app))->index($param);
});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы