为了账号安全,请及时绑定邮箱和手机立即绑定

是什么构成了Sylius资源元数据注册表?

是什么构成了Sylius资源元数据注册表?

PHP
莫回无 2021-05-10 17:46:17
简短版: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.resourcesSymfony容器参数加载配置,并为在中找到的每个资源的addFromAliasAndConfiguration服务定义添加方法调用。sylius.resource_registrysylius.resources


查看完整回答
反对 回复 2021-05-21
  • 1 回答
  • 0 关注
  • 157 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信