Example #1
0
 /**
  * @covers \ProxyManager\Configuration::getGeneratorStrategy
  * @covers \ProxyManager\Configuration::setGeneratorStrategy
  */
 public function testSetGetGeneratorStrategy()
 {
     $this->assertInstanceOf('ProxyManager\\GeneratorStrategy\\GeneratorStrategyInterface', $this->configuration->getGeneratorStrategy());
     $strategy = $this->getMock('ProxyManager\\GeneratorStrategy\\GeneratorStrategyInterface');
     $this->configuration->setGeneratorStrategy($strategy);
     $this->assertSame($strategy, $this->configuration->getGeneratorStrategy());
 }
 /**
  * {@inheritDoc}
  *
  * @return \Zend\ServiceManager\Proxy\LazyServiceFactory
  */
 public function createService(ServiceLocatorInterface $serviceLocator)
 {
     $config = $serviceLocator->get('Config');
     if (!isset($config['lazy_services'])) {
         throw new Exception\InvalidArgumentException('Missing "lazy_services" config key');
     }
     $lazyServices = $config['lazy_services'];
     if (!isset($lazyServices['class_map'])) {
         throw new Exception\InvalidArgumentException('Missing "class_map" config key in "lazy_services"');
     }
     $factoryConfig = new Configuration();
     if (isset($lazyServices['proxies_target_dir'])) {
         $factoryConfig->setProxiesTargetDir($lazyServices['proxies_target_dir']);
     }
     if (!isset($lazyServices['write_proxy_files']) || !$lazyServices['write_proxy_files']) {
         $factoryConfig->setGeneratorStrategy(new EvaluatingGeneratorStrategy());
     }
     if (isset($lazyServices['auto_generate_proxies'])) {
         $factoryConfig->setAutoGenerateProxies($lazyServices['auto_generate_proxies']);
         // register the proxy autoloader if the proxies already exist
         if (!$lazyServices['auto_generate_proxies']) {
             spl_autoload_register($factoryConfig->getProxyAutoloader());
             $factoryConfig->setGeneratorStrategy(new EvaluatingGeneratorStrategy());
         }
     }
     //if (!isset($lazyServicesConfig['runtime_evaluate_proxies']))
     if (isset($lazyServices['proxies_namespace'])) {
         $factoryConfig->setProxiesNamespace($lazyServices['proxies_namespace']);
     }
     return new LazyServiceFactory(new LazyLoadingValueHolderFactory($factoryConfig), $lazyServices['class_map']);
 }
 public static function fromDefaultProxyFacyoryConfiguration(SchemaDiffProviderInterface $originalSchemaManipulator)
 {
     $proxyConfig = new Configuration();
     $proxyConfig->setGeneratorStrategy(new EvaluatingGeneratorStrategy());
     $proxyFactory = new LazyLoadingValueHolderFactory($proxyConfig);
     return new LazySchemaDiffProvider($proxyFactory, $originalSchemaManipulator);
 }
Example #4
0
 private function createProxyManager()
 {
     if ($this->proxyManager !== null) {
         return;
     }
     if (!class_exists(Configuration::class)) {
         throw new \RuntimeException('The ocramius/proxy-manager library is not installed. Lazy injection requires that library to be installed with Composer in order to work. Run "composer require ocramius/proxy-manager:~1.0".');
     }
     $config = new Configuration();
     if ($this->writeProxiesToFile) {
         $config->setProxiesTargetDir($this->proxyDirectory);
         $config->setGeneratorStrategy(new FileWriterGeneratorStrategy(new FileLocator($this->proxyDirectory)));
         spl_autoload_register($config->getProxyAutoloader());
     } else {
         $config->setGeneratorStrategy(new EvaluatingGeneratorStrategy());
     }
     $this->proxyManager = new LazyLoadingValueHolderFactory($config);
 }
 /**
  * @param \GraphAware\Neo4j\OGM\Metadata\ClassMetadata $classMetadata
  * @param \GraphAware\Neo4j\OGM\EntityManager          $manager
  * @param string                                       $className
  */
 public function __construct(NodeEntityMetadata $classMetadata, EntityManager $manager, $className)
 {
     $this->classMetadata = $classMetadata;
     $this->entityManager = $manager;
     $this->className = $className;
     $config = new Configuration();
     $dir = sys_get_temp_dir();
     $config->setGeneratorStrategy(new FileWriterGeneratorStrategy(new FileLocator($dir)));
     $config->setProxiesTargetDir($dir);
     spl_autoload_register($config->getProxyAutoloader());
     $this->lazyLoadingFactory = new LazyLoadingGhostFactory($config);
 }
Example #6
0
 /**
  * proxy_instantiator constructor
  * @param string $cache_dir Cache dir for fall back when using open_basedir
  */
 public function __construct($cache_dir)
 {
     $config = new Configuration();
     // Prevent trying to write to system temp dir in case of open_basedir
     // restrictions being in effect
     $ini_wrapper = new IniGetWrapper();
     $filesystem = new filesystem();
     $tmp_dir = function_exists('sys_get_temp_dir') ? sys_get_temp_dir() : '';
     if (empty($tmp_dir) || $ini_wrapper->getString('open_basedir') && (!$filesystem->exists($tmp_dir) || !$filesystem->is_writable($tmp_dir))) {
         $config->setProxiesTargetDir($cache_dir);
     }
     $config->setGeneratorStrategy(new EvaluatingGeneratorStrategy());
     $this->factory = new LazyLoadingValueHolderFactory($config);
 }
 /**
  * {@inheritDoc}
  * @return ConfigurationOptions
  */
 public function createService(ServiceLocatorInterface $serviceLocator)
 {
     /** @var \Detail\Core\ProxyManager\Options\ConfigurationOptions $options */
     $options = $serviceLocator->get('Detail\\Core\\ProxyManager\\Options\\ConfigurationOptions');
     $factoryConfig = new Configuration();
     if ($options->getProxiesNamespace()) {
         $factoryConfig->setProxiesNamespace($options->getProxiesNamespace());
     }
     if ($options->getProxiesTargetDir()) {
         $factoryConfig->setProxiesTargetDir($options->getProxiesTargetDir());
     }
     if (!$options->getWriteProxyFiles()) {
         $factoryConfig->setGeneratorStrategy(new EvaluatingGeneratorStrategy());
     }
     spl_autoload_register($factoryConfig->getProxyAutoloader());
     return new LazyLoadingValueHolderFactory($factoryConfig);
 }
 /**
  * @param ServiceLocatorInterface $serviceLocator
  * @return LazyLoadingValueHolderFactory
  * @throws InvalidArgumentException
  */
 public function getLazyFactory(ServiceLocatorInterface $serviceLocator)
 {
     $config = $serviceLocator->has('config') ? $serviceLocator->get('config') : [];
     $config['lazy_services'] = ArrayUtils::merge(isset($config['lazy_services']) ? $config['lazy_services'] : [], $config['bsb_flysystem']['adapter_manager']['lazy_services']);
     if (!isset($config['lazy_services'])) {
         throw new \InvalidArgumentException('Missing "lazy_services" config key');
     }
     $lazyServices = $config['lazy_services'];
     $factoryConfig = new Configuration();
     if (isset($lazyServices['proxies_namespace'])) {
         $factoryConfig->setProxiesNamespace($lazyServices['proxies_namespace']);
     }
     if (isset($lazyServices['proxies_target_dir'])) {
         $factoryConfig->setProxiesTargetDir($lazyServices['proxies_target_dir']);
     }
     if (!isset($lazyServices['write_proxy_files']) || !$lazyServices['write_proxy_files']) {
         $factoryConfig->setGeneratorStrategy(new EvaluatingGeneratorStrategy());
     }
     spl_autoload_register($factoryConfig->getProxyAutoloader());
     return new LazyLoadingValueHolderFactory($factoryConfig);
 }
 private function createProxyManager()
 {
     if ($this->proxyManager !== null) {
         return;
     }
     if (!class_exists('ProxyManager\\Configuration')) {
         throw new \RuntimeException('The ocramius/proxy-manager library is not installed. Lazy injection requires that library to be installed with Composer in order to work. Run "composer require ocramius/proxy-manager:~0.3".');
     }
     $config = new Configuration();
     /**
      * @todo useless since ProxyManager 0.5, line kept for compatibility with 0.3 and 0.4 which are
      * the only versions that work with PHP < 5.3.23
      * Remove when support for PHP 5.3 is dropped
      */
     $config->setAutoGenerateProxies(true);
     if ($this->writeProxiesToFile) {
         $config->setProxiesTargetDir($this->proxyDirectory);
         spl_autoload_register($config->getProxyAutoloader());
     } else {
         $config->setGeneratorStrategy(new EvaluatingGeneratorStrategy());
     }
     $this->proxyManager = new LazyLoadingValueHolderFactory($config);
 }
 /**
  * Constructor
  */
 public function __construct()
 {
     $config = new Configuration();
     $config->setGeneratorStrategy(new EvaluatingGeneratorStrategy());
     $this->factory = new LazyLoadingValueHolderFactory($config);
 }
Example #11
0
<?php

use ProxyManager\Configuration;
use ProxyManager\GeneratorStrategy\EvaluatingGeneratorStrategy;
require_once __DIR__ . '/../../vendor/autoload.php';
$configuration = new Configuration();
$configuration->setGeneratorStrategy(new EvaluatingGeneratorStrategy());
Example #12
0
 /**
  * @return LazyLoadingValueHolderFactory
  */
 private function buildProxyFactory()
 {
     $config = new Configuration();
     // TODO useless since ProxyManager 0.5, line kept for compatibility with previous versions
     $config->setAutoGenerateProxies(true);
     if ($this->writeProxiesToFile) {
         $config->setProxiesTargetDir($this->proxyDirectory);
         spl_autoload_register($config->getProxyAutoloader());
     } else {
         $config->setGeneratorStrategy(new EvaluatingGeneratorStrategy());
     }
     return new LazyLoadingValueHolderFactory($config);
 }
 /**
  * Returns the ProxyManager configuration based on the current
  * {@link \bitExpert\Disco\BeanFactoryConfiguration}.
  *
  * @return Configuration
  */
 public function getProxyManagerConfiguration() : Configuration
 {
     $proxyManagerConfiguration = new Configuration();
     $proxyManagerConfiguration->setProxiesTargetDir($this->proxyTargetDir);
     if ($this->proxyWriterGenerator instanceof GeneratorStrategyInterface) {
         $proxyManagerConfiguration->setGeneratorStrategy($this->proxyWriterGenerator);
     }
     if ($this->proxyAutoloader instanceof AutoloaderInterface) {
         $proxyManagerConfiguration->setProxyAutoloader($this->proxyAutoloader);
     }
     return $proxyManagerConfiguration;
 }
Example #14
0
 /**
  * Create the lazy services delegator factory.
  *
  * Creates the lazy services delegator factory based on the lazy_services
  * configuration present.
  *
  * @return Proxy\LazyServiceFactory
  * @throws ServiceNotCreatedException when the lazy service class_map
  *     configuration is missing
  */
 private function createLazyServiceDelegatorFactory()
 {
     if ($this->lazyServicesDelegator) {
         return $this->lazyServicesDelegator;
     }
     if (!isset($this->lazyServices['class_map'])) {
         throw new ServiceNotCreatedException('Missing "class_map" config key in "lazy_services"');
     }
     $factoryConfig = new ProxyConfiguration();
     if (isset($this->lazyServices['proxies_namespace'])) {
         $factoryConfig->setProxiesNamespace($this->lazyServices['proxies_namespace']);
     }
     if (isset($this->lazyServices['proxies_target_dir'])) {
         $factoryConfig->setProxiesTargetDir($this->lazyServices['proxies_target_dir']);
     }
     if (!isset($this->lazyServices['write_proxy_files']) || !$this->lazyServices['write_proxy_files']) {
         $factoryConfig->setGeneratorStrategy(new EvaluatingGeneratorStrategy());
     }
     spl_autoload_register($factoryConfig->getProxyAutoloader());
     $this->lazyServicesDelegator = new Proxy\LazyServiceFactory(new LazyLoadingValueHolderFactory($factoryConfig), $this->lazyServices['class_map']);
     return $this->lazyServicesDelegator;
 }
 /**
  * {@inheritDoc}
  *
  * @return AccessInterceptorScopeLocalizerFactory
  */
 public function createService(ServiceLocatorInterface $serviceLocator)
 {
     $config = new Configuration();
     $config->setGeneratorStrategy(new EvaluatingGeneratorStrategy());
     return new AccessInterceptorScopeLocalizerFactory($config);
 }
Example #16
0
 /**
  * @return LazyLoadingValueHolderFactory
  */
 protected function getProxyFactory()
 {
     $config = new Configuration();
     $config->setGeneratorStrategy(new EvaluatingGeneratorStrategy());
     return new LazyLoadingValueHolderFactory($config);
 }