vpodorozh / cli-construct-arg-auto-proxy-lib
此包已被废弃且不再维护。未建议替代包。
关于此包最新版本(1.0.0)没有可用的许可信息。
使所有 Magento CLI 命令构建依赖项时注入 Proxy。
1.0.0
2022-11-02 07:50 UTC
Requires
- magento/framework: *
Requires (Dev)
- roave/security-advisories: dev-latest
README
--- title: [library] Cli Constructor Arg Auto Proxy keywords: CLI, Proxy, ObjectManager author: Vlad Podorozhnyi send_questions_to: vpodorozh@gmail.com | vlad.podorozhnyi@run-as-root.sh category: System ---
是 CLI Constructor Arg Auto Proxy 项目的组成部分 - 通过 ref 查看项目详情。
[库] Cli Constructor Arg Auto Proxy
功能
自动将 Proxy 作为参数添加到 CLI 命令类中
自动为 CLI 命令类构造函数中定义的任何参数注入 Proxy。
功能入口基于 DI 配置读取器,在开发和生产模式下都使用。
技术规范
插件
\Vpodorozh\CliConstructorArgAutoProxy\Plugin\Dom\EnrichCliConfigWithProxyPlugin
- 负责为 CLI 命令构造函数的参数丰富 DI 配置中的 Proxy;
- 在读取 DI 配置之后执行;
- 插件执行方式不寻常 - 通过 DI 配置读取器的 DOM 配置偏好(下面章节将提供更多详细信息)
- 调用类:
\Vpodorozh\CliConstructorArgAutoProxy\Preference\Framework\ObjectManager\Config\Reader\Dom\Interceptor
偏好
source-class | custom-class |
---|---|
Magento\Framework\ObjectManager\Config\Reader\Dom | ...\Preference\Framework\ObjectManager\Config\Reader\Dom\Interceptor |
\Vpodorozh\CliConstructorArgAutoProxy\Preference\Framework\ObjectManager\Config\Reader\Dom\Interceptor
插件执行的解决方案。
此覆盖与常规 Magento 2 Interceptor 具有相同的目的 - 调用插件的钩子。
由于它是在 Magento 插件功能开始之前创建的,因此无法在 DOM 配置读取器上定义插件。偏好是唯一可以挂钩的方式。
服务
\Vpodorozh\CliConstructorArgAutoProxy\Service\EnrichCliConfigWithProxyService
仅为 CLI 类命令丰富提供的 DI 配置中的 Proxy。
\Vpodorozh\CliConstructorArgAutoProxy\Service\GetProxiedConstructArgsConfigService
接收 CLI 命令构造函数的参数类型,并将它们重新格式化为 Proxy 类型。
使用IsClassEligibleForProxyValidator
来决定类是否具有代理资格。
验证器
\Vpodorozh\CliConstructorArgAutoProxy\Validator\IsClassEligibleForProxyValidator
检查代理是否适用于此特定类。
映射器
\Vpodorozh\CliConstructorArgAutoProxy\Mapper\ProxiedConstructArgsToDiConfigMapper
为特定的CLI类命令添加代理DI配置到DI配置池中。