只是一个快速的问题。我正在构建一些 API。我正在考虑创建简单的父类来处理表单请求。
因此,例如,如果您想轻松处理表单请求,您只需扩展此类并访问请求对象、从该对象提取的请求数据以及开箱即用为您做一些事情的一堆方法。究竟是什么以及为什么并不重要。
问题是:
- 我通过邮递员发送请求。
- 我尝试在扩展父类的类中使用请求对象,但我得到的不是请求,而是 null。
我如何设置整个事情?:
现在在 Symfony 中,每个控制器默认注册为服务,所以我像这样覆盖这个定义:
#generic api form controller
App\Controller\Api\ApiFormController:
calls:
- [setDependencies, ['@request_stack', '@App\Service\Serialization\Serializer']]
如您所见,我正在使用 setter 注入。
我在我的其他课程中扩展了以上课程。我们称它为 PostController。所以:
<?php
namespace App\Controller\Api;
use Symfony\Component\HttpFoundation\RequestStack;
class ApiFormController
{
/**
* @var Request
*/
public $request;
/**
* @param RequestStack $requestStack
*/
public function setDependencies(
RequestStack $requestStack
) {
$this->request = $requestStack;
}
}
现在 PostController:
public function get(int $post = null)
{
dump($this->request); exit;
}
我期待获得这样的访问权限,并且我想我理解为什么我无法访问该对象。我正在寻找一些想法,如何以最干净的方式实现这一目标。我不期待现成的答案,而是提示。
我正在考虑使用事件在后台进行设置?我还认为这与我将控制器作为服务连接的方式有关。