使用普通的旧apache服务器,您可以使用localhost:80/acme/app.php/routes
所以app.php
或app_dev.php
是前控制器。知道这一点,你几乎可以忘记它。但是当您使用PHP内置服务器时,您可以直接访问localhost:8000/routes
。
我查看了console
脚本文件,它看起来像app.php
,但我们只在服务器启动时调用它一次。胶水在哪里?
答案 0 :(得分:3)
console
文件是Symfony应用程序的CLI环境的前端控制器。 server:run
是此环境的一部分,可以在FrameworkBundle中找到:ServerRunCommand
(编辑:从Symfony 3.3开始,命令可以在the WebServerBundle中找到)
它启动PHP的内置Web服务器:php -S localhost:8000
,它将所有的请求请求路由到所谓的路由脚本。在开发环境的情况下,FrameworkBundle中的router_dev.php
路由器。
此路由器文件包含以下行:
$_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
文件来处理网站的呈现。