Почему в 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 минимальные)
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 23:00
5000 руб./за проект
19 апр. 2024, в 20:43
20000 руб./за проект