Download the PHP package vpodorozh/cli-construct-arg-auto-proxy-lib without Composer
On this page you can find all versions of the php package vpodorozh/cli-construct-arg-auto-proxy-lib. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download vpodorozh/cli-construct-arg-auto-proxy-lib
More information about vpodorozh/cli-construct-arg-auto-proxy-lib
Files in vpodorozh/cli-construct-arg-auto-proxy-lib
Package cli-construct-arg-auto-proxy-lib
Short Description Makes all Magento CLI commands construct dependencies be injected as Proxy.
License
Informations about the package cli-construct-arg-auto-proxy-lib
title: [library] Cli Constructor Arg Auto Proxy
keywords: CLI, Proxy, ObjectManager
author: Vlad Podorozhnyi
send_questions_to: [email protected] | [email protected]
category: System
Part of CLI Constructor Arg Auto Proxy project - follow the ref to see project details.
[library] Cli Constructor Arg Auto Proxy
Features
Auto add proxies as arguments to CLI command classes
Automatically injects Proxy for any argument defined in CLI command class constructor.
Entry point of functionality is based on DI config reader that is used in both cases - developer and production modes.
Technical Specification
Plugins
\Vpodorozh\CliConstructorArgAutoProxy\Plugin\Dom\EnrichCliConfigWithProxyPlugin
- responsible for enriching DI config with Proxies for CLI command constructor arguments;
- executed after DI config reading;
- plugin is executed in not trivial way - via preference on DOM config reader of DI (see section bellow for more details)
- Caller class:
\Vpodorozh\CliConstructorArgAutoProxy\Preference\Framework\ObjectManager\Config\Reader\Dom\Interceptor
Preferences
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
Workaround for plugin execution.
This override has the same purpose as regular Magento 2 Interceptors - hook for calling plugins.
It is not possible to define plugin over DOM config reader, as it is created before Magento plugin functionality starts.
Preference is the only way to hook in.
Services
\Vpodorozh\CliConstructorArgAutoProxy\Service\EnrichCliConfigWithProxyService
Enrich provided DI config with proxies for CLI class commands only.
\Vpodorozh\CliConstructorArgAutoProxy\Service\GetProxiedConstructArgsConfigService
Receives CLI command constructor arguments types and reformat them to Proxy types.
Using IsClassEligibleForProxyValidator
to determine is class eligible to be Proxied.
Validator
\Vpodorozh\CliConstructorArgAutoProxy\Validator\IsClassEligibleForProxyValidator
Check is Proxy applicable for this specific class.
Mapper
\Vpodorozh\CliConstructorArgAutoProxy\Mapper\ProxiedConstructArgsToDiConfigMapper
Adds Proxy DI configs for specific CLI class command to DI configs pool.