Почему в silex framework нет папки контроллеров?

Здравствуйте.
Подскажите пожалуйста, а где должны храниться контроллеры, модели в этом фреймворке?
Или контроллеры просто разбиваются на отдельные файлы (вместе с соответствующими роутами), и потом просто инклудятся в controllers.php?
Подскажите пожалуйста. Только установил silex, и разбираюсь
  • Вопрос задан
  • 392 просмотра
Пригласить эксперта
Ответы на вопрос 2
@TexElless
Backend-разработчик(преимущественно PHP и Symfony)
У Silex'а нет строгой структуры "из коробки", у нас в проде вполне живет проект с роутингом прям в index.php, а внутри роутов просто дергаются методы нужных сервисов. Что-то вроде такого:
$forecast = $app['controllers_factory'];
$forecast->get('/calculations', function (Request $request) use ($app) {
    $data = new \App\Services\ForecastService($app['db'], $request, $app['user']);
    $return = $data->getForecastCalculations();

    return new JsonResponse((array)$return, 200, ['access-control-allow-origin' => '*']);
});
$app->mount('/forecast', $forecast);
$app->after($app['cors']);

$app->run();


Если нужно усложнение логики - можно из роутинга вызывать нужный контроллер, внутри него уже дергать нужное количество сервисов, подготавливающих ответ. При этом где будут храниться сервисы, контроллеры, модели и будут ли они у вас вообще - исключительно ваше дело. Можно делать по аналогии с другими фреймворками (Laravel-style, Symfony-style), можно придумать что-то своё, главное поддерживать единообразие, чтобы потом самому в этом не запутаться.
Ответ написан
Комментировать
riky
@riky
Laravel
предполагается что их там будет немного. поэтому либо в один файл либо инклюдить.
если вы собираетесь писать десяток контроллеров и столько же моделей, то возьмите ларавел, такой же микрофреймворк только все лучше организовано и больше функций.
(микрофреймворк lumen не рекомендую, там отличия от полного laravel минимальные)
Ответ написан
Ваш ответ на вопрос

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

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