简短版: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
用数据填充了服务?
冉冉说