/**
* 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;
}