bbl*_*lue 5 php orm symfony doctrine-orm
我遇到了与自定义 Doctrine 2 Hydrator 的依赖注入几乎相同的问题,但我需要将服务注入到自定义数据类型中,而不是注入到 Hydrator 中。
所引用问题中的解决方案依赖于在 Doctrine 初始化类本身时复制和修改 Doctrine 源代码。希望另一种方法对自定义数据类型可行吗?
这是针对 Symfony3 应用程序的,如果可以在那里应用一些魔法的话。
根据最初问题中的评论:
让这变得困难的是 Doctrine 实例化自定义数据类型的方式。教条的方法Type::addType($name, $className)只需要类名,而不是类的实例。您可以做的就是在捆绑扩展类中添加自定义学说类型,然后在kernel.request具有所需依赖项的事件侦听器服务上注册一个事件侦听器服务,并通过调用将它们设置为您的数据类型\Doctrine\DBAL\Types::getType($name)->setSomeDependency($dependency);。虽然有点乱。
马蒂亚斯的文章很好找到。扩展类的方法boot()看起来确实是设置依赖关系的更自然的地方。
| 归档时间: |
|
| 查看次数: |
1991 次 |
| 最近记录: |