覆盖 Symfony 请求 Class - 在哪里放置覆盖代码?
Overriding Symfony Request Class - Where to place the override code?
Symfony 有一个关于如何覆盖请求的非常清晰的代码示例 class,但我不知道我应该将它放在我的应用程序中的什么位置。我在我的控制器操作中收到了来自 Symfony 的请求对象,我想改为获取 SpecialRequest 对象。
我已经尝试过 kernel.request 侦听器,但这似乎为时已晚。有没有适合这种初始化代码的地方?
Request::setFactory(function (
array $query = array(),
array $request = array(),
array $attributes = array(),
array $cookies = array(),
array $files = array(),
array $server = array(),
$content = null
) {
return SpecialRequest::create(
$query,
$request,
$attributes,
$cookies,
$files,
$server,
$content
);
});
http://symfony.com/doc/current/components/http_foundation/introduction.html#overriding-the-request
在给出的示例中,Request::setFactory
方法在调用 Request::createFromGlobals
方法之前立即被调用。这意味着调用此方法的适当位置将在前端控制器中,例如app.php、app_dev.php 和用作前端控制器的任何其他文件。
实际上 Request::createFromGlobals
方法和 Request::create
方法检查 Request::setFactory
方法是否设置了一个可调用对象,如果是,它们使用这个可调用对象创建一个应该扩展请求的对象 class.
Symfony 有一个关于如何覆盖请求的非常清晰的代码示例 class,但我不知道我应该将它放在我的应用程序中的什么位置。我在我的控制器操作中收到了来自 Symfony 的请求对象,我想改为获取 SpecialRequest 对象。
我已经尝试过 kernel.request 侦听器,但这似乎为时已晚。有没有适合这种初始化代码的地方?
Request::setFactory(function (
array $query = array(),
array $request = array(),
array $attributes = array(),
array $cookies = array(),
array $files = array(),
array $server = array(),
$content = null
) {
return SpecialRequest::create(
$query,
$request,
$attributes,
$cookies,
$files,
$server,
$content
);
});
http://symfony.com/doc/current/components/http_foundation/introduction.html#overriding-the-request
在给出的示例中,Request::setFactory
方法在调用 Request::createFromGlobals
方法之前立即被调用。这意味着调用此方法的适当位置将在前端控制器中,例如app.php、app_dev.php 和用作前端控制器的任何其他文件。
实际上 Request::createFromGlobals
方法和 Request::create
方法检查 Request::setFactory
方法是否设置了一个可调用对象,如果是,它们使用这个可调用对象创建一个应该扩展请求的对象 class.