DI\Proxy\ProxyFactory::createProxy PHP Method

createProxy() public method

Creates a new lazy proxy instance of the given class with the given initializer.
public createProxy ( string $className, Closure $initializer ) : ProxyManager\Proxy\LazyLoadingInterface
$className string name of the class to be proxied
$initializer Closure initializer to be passed to the proxy
return ProxyManager\Proxy\LazyLoadingInterface
    public function createProxy($className, \Closure $initializer)
    {
        $this->createProxyManager();
        return $this->proxyManager->createProxy($className, $initializer);
    }

Usage Example

Beispiel #1
0
 /**
  * Returns a proxy instance
  *
  * @param ObjectDefinition $definition
  * @param array           $parameters
  *
  * @return LazyLoadingInterface Proxy instance
  */
 private function createProxy(ObjectDefinition $definition, array $parameters)
 {
     /** @noinspection PhpUnusedParameterInspection */
     $proxy = $this->proxyFactory->createProxy($definition->getClassName(), function (&$wrappedObject, $proxy, $method, $params, &$initializer) use($definition, $parameters) {
         $wrappedObject = $this->createInstance($definition, $parameters);
         $initializer = null;
         // turning off further lazy initialization
         return true;
     });
     return $proxy;
 }