了解前端控制器、内核和环境一起工作
编辑该页面警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 4.0,不再维护。
读这个页面的更新版本Symfob娱乐下载ony 6.3(当前的稳定版本)。
了解前端控制器、内核和环境一起工作
一节如何把握和创造新的环境解释了基本在Symfony如何使用环境中运行您的应用程序ob娱乐下载有不同的配置设置。本节将解释更深入引导您的应用程序时发生了什么。钩到这个过程中,您需要了解三个部分一起工作:
请注意
通常,您不需要定义自己的控制器或前面内核
类Symfony提ob娱乐下载供了合理的默认实现。本文提供了解释在幕后发生了什么。
前端控制器
的前端控制器是一个设计模式;这是一个部分的代码所有应用程序请求服务的运行通过。
Symfonyob娱乐下载框架,这个角色是由index . php
文件公共/
目录中。这是第一个PHP脚本处理请求时执行。
前端控制器的主要目的是创建的实例内核
(这个),让它处理请求并将产生的响应返回给浏览器。
因为每个请求路由,前端控制器可用于执行全球初始化设置内核或之前装修内核与附加功能。例子包括:
你可以选择使用的前端控制器通过添加它在URL中,如:
1
http://localhost/index.php/some/path/..。
如您所见,这个URL包含PHP脚本作为前端控制器。你可以用它来轻松地切换到定制控制器位于前面公共/
目录中。
另请参阅
你几乎从来没有想给前端控制器的URL。这是通过配置web服务器,如图所示配置一个Web服务器。
技术上,bin /控制台
脚本运行时使用Symfony命令行上也是一个前端控ob娱乐下载制器,只有不用于web,但对于命令行请求。
内核类
的内核是Symfony的核心。ob娱乐下载它负责建立所有应用程序使用的包和提供应用程序的配置。然后创建的服务容器之前服务请求处理()方法。
Symfony应用程序中使用的内核扩展ob娱乐下载内核并使用MicroKernelTrait。的内核
类留下了一些方法KernelInterface未实现的,MicroKernelTrait
定义了一些抽象方法,所以你必须实现:
- registerBundles ()
- 它必须返回一个数组的运行应用程序所需的所有包。
- configureRoutes ()
- 它增加了个人路由或路由到应用程序的集合(例如装载一些配置文件)中定义的路线。
- configureContainer ()
-
它加载的配置文件或使用的应用程序配置
loadFromExtension ()
方法,也可以注册新的容器参数和服务。
填补这些空白(小),您的应用程序需要扩展内核类并使用MicroKernelTrait实现这些方法。ob娱乐下载Symfony提供了默认情况下,内核的src / Kernel.php
文件。
这个类使用环境的名称——这是传递给内核的构造函数方法,可以通过getEnvironment ()决定哪些包启用。在的逻辑registerBundles ()
。
当然,你可以创建自己的,替代或额外的内核
变体。所有你需要的是适应(或添加一个新的)前端控制器使用新的内核。
请注意
的名称和位置内核
不是固定的。当把多个内核到一个单独的应用程序添加额外的子目录,可能因此意义,例如src / admin / AdminKernel.php
和src / api / ApiKernel.php
。最重要的是,你的前端控制器能够适当的内核创建一个实例。
请注意
还有很多内核
比如,可以使用吗覆盖默认的目录结构。但是几率很高,你不需要改变这样的有几个内核
实现。
的环境
正如刚刚提到的,内核
实现另一种方法——吗configureContainer ()。该方法负责加载应用程序的配置从右边环境。
环境已经广泛覆盖在前一篇文章中,你可能还记得,Symfony使用默认情况下,其中的3台ob娱乐下载dev
,刺激
和测试
。
更多的从技术上讲,这些名字只不过是字符串传递从前端控制器内核
的构造函数。这个名字可以使用的configureContainer ()
决定哪些配置文件加载的方法。
ob娱乐下载Symfony的默认内核
类实现该方法首先加载配置文件上找到配置/包/ *
然后,上发现的文件配置/包/ ENVIRONMENT_NAME /
。当然,你可以实现这个方法不同,如果你需要一个更复杂的加载您的配置方式。