vpodorozh/cli-construct-arg-auto-proxy-lib

此包已被废弃且不再维护。未建议替代包。
关于此包最新版本(1.0.0)没有可用的许可信息。

使所有 Magento CLI 命令构建依赖项时注入 Proxy。

1.0.0 2022-11-02 07:50 UTC

This package is auto-updated.

Last update: 2022-12-02 08:06:53 UTC


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  
---

Magento 2 PHP composer packagist

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配置池中。