Bre*_*old 5 php dependencies code-injection autowired symfony
我的自动装配不适用于基本文件实体侦听器。
我有一个File实体类,它使用批注指定侦听器,例如:
/**
@Orm\Entity(repositoryClass="root\CoreBundle\Repository\FileRepository")
@Orm\EntityListeners({"root\CoreBundle\EventListener\Entity\FileEntityListener"})
@Orm\Table(
etc...
Run Code Online (Sandbox Code Playgroud)
FileEntityListener类的开始如下:
class FileEntityListener
{
private $encoderFactory;
private $logger;
public function __construct(FilesystemMap $filesystemMap, LoggerInterface $logger)
{
$this->setFilesystemMap($filesystemMap);
$this->logger = $logger;
}
Run Code Online (Sandbox Code Playgroud)
当侦听器启动时,没有将依赖项注入侦听器的构造函数中,并且我收到该构造函数的错误,说:
Type error: Too few arguments to function Epcvip\CoreBundle\EventListener\Entity\FileEntityListener::__construct(), 0 passed in /var/www/html/accounting/vendor/doctrine/doctrine-bundle/Mapping/ContainerAwareEntityListenerResolver.php on line 83 and exactly 2 expected
Run Code Online (Sandbox Code Playgroud)
该捆绑包是自动接线的,但是没有注入依赖项。
有人知道为什么这行不通吗?也许我缺少一个简单的配置步骤?
您需要在 services.yaml 中像这样标记您的实体侦听器:
services:
root\CoreBundle\EventListener\Entity\FileEntityListener
tags:
- { name: doctrine.orm.entity_listener }
| 归档时间: |
|
| 查看次数: |
1985 次 |
| 最近记录: |