Exemplo n.º 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());
 }
 /**
  * Generates the provided `$proxyClassName` from the given `$className` and `$proxyParameters`
  * @param string $proxyClassName
  * @param string $className
  * @param array  $proxyParameters
  *
  * @return void
  */
 private function generateProxyClass($proxyClassName, $className, array $proxyParameters)
 {
     $className = $this->configuration->getClassNameInflector()->getUserClassName($className);
     $phpClass = new ClassGenerator($proxyClassName);
     $this->getGenerator()->generate(new ReflectionClass($className), $phpClass);
     $phpClass = $this->configuration->getClassSignatureGenerator()->addSignature($phpClass, $proxyParameters);
     $this->configuration->getGeneratorStrategy()->generate($phpClass);
     $this->configuration->getProxyAutoloader()->__invoke($proxyClassName);
 }
Exemplo n.º 3
0
 /**
  * Generate a proxy from a class name
  * @param  string $className
  * @return string proxy class name
  */
 protected function generateProxy($className)
 {
     if (!isset($this->generatedClasses[$className])) {
         $this->generatedClasses[$className] = $this->inflector->getProxyClassName($className, array('factory' => get_class($this)));
     }
     $proxyClassName = $this->generatedClasses[$className];
     if (!class_exists($proxyClassName)) {
         $className = $this->inflector->getUserClassName($className);
         $phpClass = new ClassGenerator($proxyClassName);
         $this->getGenerator()->generate(new ReflectionClass($className), $phpClass);
         $this->configuration->getGeneratorStrategy()->generate($phpClass);
         $this->configuration->getProxyAutoloader()->__invoke($proxyClassName);
     }
     return $proxyClassName;
 }