thomasvargiu / proxy-manager-module

此包已被废弃,不再维护。没有建议的替代包。

一个ZF2模块,允许通过ServiceManager配置和使用Ocramius/ProxyManager

1.0.0 2015-05-07 00:11 UTC

This package is auto-updated.

Last update: 2022-02-01 12:44:43 UTC


README

Build Status Code Coverage Scrutinizer Code Quality Dependency Status Latest Stable Version Total Downloads Latest Unstable Version License

状态:开发

ZF2模块,允许通过服务管理器注册工厂来简化使用Ocramius/ProxyManager

配置

return [
    'proxy_manager_module' => [
        'configuration' => [
            /*
             * Proxies namespace
             *
             * A namespace for proxies
             */
            // 'proxies_namespace' => '',

            /*
             * Proxies Target Directory
             *
             * Where to save proxies
             */
            // 'proxies_target_dir' => './data/ProxyManager',

            /*
             * Generator Strategy
             *
             * An instance of ProxyManager\GeneratorStrategy\GeneratorStrategyInterface
             * or a service name in the service locator
             */
            // 'generator_strategy' => '',

            /*
             * Proxy autoloader
             *
             * An instance of ProxyManager\Autoloader\AutoloaderInterface
             * or a service name in the service locator
             */
            // 'proxy_autoloader' => '',

            /*
             * Class name inflector
             *
             * An instance of ProxyManager\Inflector\ClassNameInflectorInterface
             * or a service name in the service locator
             */
            // 'class_name_inflector' => '',
        ],
    ],
];

注册的工厂

return [
    'service_manager' => [
        'factories' => [
            'ProxyManager\\Configuration' => 'ProxyManagerModule\\Factory\\ConfigurationFactory',
            'ProxyManager\\Factory\\AccessInterceptorScopeLocalizerFactory' => 'ProxyManagerModule\\Factory\\AccessInterceptorScopeLocalizerFactoryFactory',
            'ProxyManager\\Factory\\AccessInterceptorValueHolderFactory' => 'ProxyManagerModule\\Factory\\AccessInterceptorValueHolderFactoryFactory',
            'ProxyManager\\Factory\\LazyLoadingGhostFactory' => 'ProxyManagerModule\\Factory\\LazyLoadingGhostFactoryFactory',
            'ProxyManager\\Factory\\LazyLoadingValueHolderFactory' => 'ProxyManagerModule\\Factory\\LazyLoadingValueHolderFactoryFactory',
            'ProxyManager\\Factory\\NullObjectFactory' => 'ProxyManagerModule\\Factory\\NullObjectFactoryFactory',
        ],
    ],
];

配置

  • ProxyManager\Configuration: 从配置中创建ProxyManager配置

工厂

这些是通过ProxyManager\Configuration服务工厂创建的工厂

  • ProxyManager\Factory\AccessInterceptorScopeLocalizerFactory
  • ProxyManager\Factory\AccessInterceptorValueHolderFactory
  • ProxyManager\Factory\LazyLoadingGhostFactory
  • ProxyManager\Factory\LazyLoadingValueHolderFactory
  • ProxyManager\Factory\NullObjectFactory

如何使用

您可以通过服务管理器获取工厂来请求Proxy Factory。

/** @var \Zend\ServiceManager\ServiceLocatorInterface $serviceLocator */
$serviceLocator = $this->getServiceLocator();
/** @var \ProxyManager\Factory\LazyLoadingGhostFactory $proxyFactory */
$proxyFactory = $serviceLocator->get('ProxyManager\\Factory\\LazyLoadingGhostFactory');

当然,您可以在service_manager配置键中注册别名。