简短版:sylius.resource_registry用数据填充服务的内容是什么?详细版本:Sylius(使用Symfony构建的PHP电子商务框架)使用Symfony的自定义路由加载系统根据特殊配置值加载一些其他路由。自定义路由加载器类的名称为Sylius\Bundle\ResourceBundle\Routing\ResourceLoader。此资源加载器中有一种逻辑,该逻辑查找别名(别名的示例值),然后使用该别名从注册表中加载元数据。$metadata = $this->resourceRegistry->get($configuration['alias']);此注册表与标识符的symfony的服务sylius.resource_registry,在这里配置。#File: vendor/sylius/sylius/src/Sylius/Bundle/ResourceBundle/Resources/config/services.xml
<service id="sylius.resource_registry" class="Sylius\Component\Resource\Metadata\Registry" public="false" />并注入这里。#File: vendor/sylius/sylius/src/Sylius/Bundle/ResourceBundle/Resources/config/services/routing.xml<service id="sylius.routing.loader.resource" class="Sylius\Bundle\ResourceBundle\Routing\ResourceLoader" public="false"> <argument type="service" id="sylius.resource_registry" /> <argument type="service"> <service class="Sylius\Bundle\ResourceBundle\Routing\RouteFactory" /> </argument> <tag name="routing.loader" /></service>然而,在Sylius\Component\Resource\Metadata\Registry类没有构造函数,所以它不是清楚是什么填充私人$元数据阵列。有命名方法add和addFromAliasAndConfiguration其变异〜状态〜增加值的$metadata数组,但目前还不清楚是什么代码调用这些方法,和/或什么sylius配置导致调用这些方法。在尽可能深入的研究之后,我不确定这个兔子洞的深度如何,所以我转向您。堆栈溢出:是什么sylius.resource_registry用数据填充了服务?
1 回答
冉冉说
TA贡献1877条经验 获得超1个赞
一个Symfony编译器传递完成它。具体来说:https : //github.com/Sylius/Sylius/blob/master/src/Sylius/Bundle/ResourceBundle/DependencyInjection/Compiler/RegisterResourcesPass.php
它从sylius.resources
Symfony容器参数加载配置,并为在中找到的每个资源的addFromAliasAndConfiguration
服务定义添加方法调用。sylius.resource_registry
sylius.resources
- 1 回答
- 0 关注
- 157 浏览
添加回答
举报
0/150
提交
取消