Где находится Front Controller, использующий сервер: запустить в Symfony 2

0

Используя простой старый сервер Apache, вы делаете свой запрос на Symfony с помощью localhost:80/acme/app.php/routes

Итак, app.php или app_dev.php - это ваш Front Controller. Зная это, вы можете почти забыть об этом. Но когда вы используете встроенный PHP-сервер, вы можете напрямую обращаться к localhost:8000/routes.

Я заглянул в файл сценария console, и он выглядит как app.php но мы вызываем его только один раз, в начале сервера. Где клей?

Теги:

1 ответ

3
Лучший ответ

console файл является фронт-контроллером среды CLI вашего приложения Symfony. server:run является частью этой среды и может быть найден в FrameworkBundle: ServerRunCommand (EDIT: с Symfony 3.3, эта команда может быть найдена в WebServerBundle)

Он запускает встроенный веб-сервер PHP: php -S localhost:8000 и направляет все входящие запросы на так называемый скрипт маршрутизации. В случае среды dev - маршрутизатор router_dev.php внутри FrameworkBundle.

Этот файл маршрутизатора имеет следующую строку:

$_SERVER['SCRIPT_FILENAME'] = $_SERVER['DOCUMENT_ROOT'].DIRECTORY_SEPARATOR.'app_dev.php';

Который притворяется, что входящий запрос был сделан в файл app_dev.php. (Так localhost:8000/something становится localhost:8000/app_dev.php/something после этого скрипта маршрутизатора). Затем он включает файл app_dev.php для обработки рендеринга сайта.

  • 0
    Благодарю. Отличный ответ!
  • 0
    Отличный ответ! Спасибо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню