Php 重写Symfony请求类-将重写代码放置在何处?
Symfony有一个关于如何覆盖request类的非常清晰的代码示例,但我不知道应该在我的应用程序中放置它。我在控制器操作中接收到来自Symfony的请求对象,并希望获得SpecialRequest对象 我已经尝试了kernel.request侦听器,但这似乎太晚了。有没有适合这种初始化代码的地方Php 重写Symfony请求类-将重写代码放置在何处?,php,symfony,request,Php,Symfony,Request,Symfony有一个关于如何覆盖request类的非常清晰的代码示例,但我不知道应该在我的应用程序中放置它。我在控制器操作中接收到来自Symfony的请求对象,并希望获得SpecialRequest对象 我已经尝试了kernel.request侦听器,但这似乎太晚了。有没有适合这种初始化代码的地方 Request::setFactory(function ( array $query = array(), array $request = array(), array $
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
);
});
在给定的示例中,在调用
Request::createFromGlobals
方法之前,会立即调用Request::setFactory
方法。这意味着调用此方法的适当位置将位于前端控制器中,例如app.php、app_dev.php和用作前端控制器的任何其他文件
事实上,Request::createFromGlobals
方法和Request::create
方法会检查Request::setFactory
方法是否设置了可调用项,如果是,它们会使用该可调用项创建一个应该扩展Request类的对象