-
-
Notifications
You must be signed in to change notification settings - Fork 9.6k
EntityManager - Cannot bind an instance to a static closure #33037
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
what's exactly your problem |
After updating the vendors to latest version I end up with a Fatal Error. I tried to delete the cache manually and it produces the same error. |
Can you please create a small example application that allows to reproduce this? |
Just to eliminate a possible cause: Have you tried to upgrade to php 7.3.8? php 7.3.7 is a bit problematic for Symfony, especially during cache warmup. |
I tracked the problem to symfony/proxy-manager-bridge (4.4.x-dev 2d6e1a5) I've placed my composer.json file in this gist https://gist.github.com/stevro/f1f2806a118dd611868ea8f7c5a78db3 I've also updated PHP to 7.3.8 |
I can reproduce the problem by running composer on php 7.3.8 install with your composer.json.
|
Status: Reviewed |
Some added context as I am also running into this problem.
Perhaps something is going wrong in
It returns an array like this: {
"\\dirname(__DIR__,.php": "include_once \\dirname(__DIR__, 1 + 3).'\/vendor\/doctrine\/persistence\/lib\/Doctrine\/Common\/Persistence\/ObjectManager.php';\ninclude_once \\dirname(__DIR__, 1 + 3).'\/vendor\/doctrine\/orm\/lib\/Doctrine\/ORM\/EntityManagerInterface.php';\ninclude_once \\dirname(__DIR__, 1 + 3).'\/vendor\/doctrine\/orm\/lib\/Doctrine\/ORM\/EntityManager.php';\n\nclass EntityManager_9a5be93 extends \\Doctrine\\ORM\\EntityManager implements \\ProxyManager\\Proxy\\VirtualProxyInterface\n{\n\n \/**\n * @var \\Closure|null initializer responsible for generating the wrapped object\n *\/\n private $valueHolder8f2f0 = null;\n\n \/**\n * @var \\Closure|null initializer responsible for generating the wrapped object\n *\/\n private $initializerd0fa7 = null;\n\n \/**\n * @var bool[] map of public properties of the parent class\n *\/\n private static $publicProperties6b99d = [\n \n ];\n\n public function getConnection()\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, 'getConnection', array(), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n return $this->valueHolder8f2f0->getConnection();\n }\n\n public function getMetadataFactory()\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, 'getMetadataFactory', array(), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n return $this->valueHolder8f2f0->getMetadataFactory();\n }\n\n public function getExpressionBuilder()\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, 'getExpressionBuilder', array(), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n return $this->valueHolder8f2f0->getExpressionBuilder();\n }\n\n public function beginTransaction()\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, 'beginTransaction', array(), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n return $this->valueHolder8f2f0->beginTransaction();\n }\n\n public function getCache()\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, 'getCache', array(), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n return $this->valueHolder8f2f0->getCache();\n }\n\n public function transactional($func)\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, 'transactional', array('func' => $func), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n return $this->valueHolder8f2f0->transactional($func);\n }\n\n public function commit()\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, 'commit', array(), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n return $this->valueHolder8f2f0->commit();\n }\n\n public function rollback()\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, 'rollback', array(), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n return $this->valueHolder8f2f0->rollback();\n }\n\n public function getClassMetadata($className)\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, 'getClassMetadata', array('className' => $className), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n return $this->valueHolder8f2f0->getClassMetadata($className);\n }\n\n public function createQuery($dql = '')\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, 'createQuery', array('dql' => $dql), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n return $this->valueHolder8f2f0->createQuery($dql);\n }\n\n public function createNamedQuery($name)\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, 'createNamedQuery', array('name' => $name), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n return $this->valueHolder8f2f0->createNamedQuery($name);\n }\n\n public function createNativeQuery($sql, \\Doctrine\\ORM\\Query\\ResultSetMapping $rsm)\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, 'createNativeQuery', array('sql' => $sql, 'rsm' => $rsm), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n return $this->valueHolder8f2f0->createNativeQuery($sql, $rsm);\n }\n\n public function createNamedNativeQuery($name)\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, 'createNamedNativeQuery', array('name' => $name), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n return $this->valueHolder8f2f0->createNamedNativeQuery($name);\n }\n\n public function createQueryBuilder()\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, 'createQueryBuilder', array(), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n return $this->valueHolder8f2f0->createQueryBuilder();\n }\n\n public function flush($entity = null)\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, 'flush', array('entity' => $entity), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n return $this->valueHolder8f2f0->flush($entity);\n }\n\n public function find($entityName, $id, $lockMode = null, $lockVersion = null)\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, 'find', array('entityName' => $entityName, 'id' => $id, 'lockMode' => $lockMode, 'lockVersion' => $lockVersion), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n return $this->valueHolder8f2f0->find($entityName, $id, $lockMode, $lockVersion);\n }\n\n public function getReference($entityName, $id)\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, 'getReference', array('entityName' => $entityName, 'id' => $id), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n return $this->valueHolder8f2f0->getReference($entityName, $id);\n }\n\n public function getPartialReference($entityName, $identifier)\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, 'getPartialReference', array('entityName' => $entityName, 'identifier' => $identifier), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n return $this->valueHolder8f2f0->getPartialReference($entityName, $identifier);\n }\n\n public function clear($entityName = null)\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, 'clear', array('entityName' => $entityName), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n return $this->valueHolder8f2f0->clear($entityName);\n }\n\n public function close()\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, 'close', array(), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n return $this->valueHolder8f2f0->close();\n }\n\n public function persist($entity)\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, 'persist', array('entity' => $entity), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n return $this->valueHolder8f2f0->persist($entity);\n }\n\n public function remove($entity)\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, 'remove', array('entity' => $entity), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n return $this->valueHolder8f2f0->remove($entity);\n }\n\n public function refresh($entity)\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, 'refresh', array('entity' => $entity), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n return $this->valueHolder8f2f0->refresh($entity);\n }\n\n public function detach($entity)\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, 'detach', array('entity' => $entity), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n return $this->valueHolder8f2f0->detach($entity);\n }\n\n public function merge($entity)\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, 'merge', array('entity' => $entity), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n return $this->valueHolder8f2f0->merge($entity);\n }\n\n public function copy($entity, $deep = false)\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, 'copy', array('entity' => $entity, 'deep' => $deep), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n return $this->valueHolder8f2f0->copy($entity, $deep);\n }\n\n public function lock($entity, $lockMode, $lockVersion = null)\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, 'lock', array('entity' => $entity, 'lockMode' => $lockMode, 'lockVersion' => $lockVersion), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n return $this->valueHolder8f2f0->lock($entity, $lockMode, $lockVersion);\n }\n\n public function getRepository($entityName)\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, 'getRepository', array('entityName' => $entityName), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n return $this->valueHolder8f2f0->getRepository($entityName);\n }\n\n public function contains($entity)\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, 'contains', array('entity' => $entity), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n return $this->valueHolder8f2f0->contains($entity);\n }\n\n public function getEventManager()\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, 'getEventManager', array(), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n return $this->valueHolder8f2f0->getEventManager();\n }\n\n public function getConfiguration()\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, 'getConfiguration', array(), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n return $this->valueHolder8f2f0->getConfiguration();\n }\n\n public function isOpen()\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, 'isOpen', array(), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n return $this->valueHolder8f2f0->isOpen();\n }\n\n public function getUnitOfWork()\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, 'getUnitOfWork', array(), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n return $this->valueHolder8f2f0->getUnitOfWork();\n }\n\n public function getHydrator($hydrationMode)\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, 'getHydrator', array('hydrationMode' => $hydrationMode), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n return $this->valueHolder8f2f0->getHydrator($hydrationMode);\n }\n\n public function newHydrator($hydrationMode)\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, 'newHydrator', array('hydrationMode' => $hydrationMode), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n return $this->valueHolder8f2f0->newHydrator($hydrationMode);\n }\n\n public function getProxyFactory()\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, 'getProxyFactory', array(), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n return $this->valueHolder8f2f0->getProxyFactory();\n }\n\n public function initializeObject($obj)\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, 'initializeObject', array('obj' => $obj), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n return $this->valueHolder8f2f0->initializeObject($obj);\n }\n\n public function getFilters()\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, 'getFilters', array(), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n return $this->valueHolder8f2f0->getFilters();\n }\n\n public function isFiltersStateClean()\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, 'isFiltersStateClean', array(), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n return $this->valueHolder8f2f0->isFiltersStateClean();\n }\n\n public function hasFilters()\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, 'hasFilters', array(), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n return $this->valueHolder8f2f0->hasFilters();\n }\n\n \/**\n * Constructor for lazy initialization\n *\n * @param \\Closure|null $initializer\n *\/\n public static function staticProxyConstructor($initializer)\n {\n static $reflection;\n\n $reflection = $reflection ?? new \\ReflectionClass(__CLASS__);\n $instance = $reflection->newInstanceWithoutConstructor();\n\n \\Closure::bind(function (\\Doctrine\\ORM\\EntityManager $instance) {\n unset($instance->config, $instance->conn, $instance->metadataFactory, $instance->unitOfWork, $instance->eventManager, $instance->proxyFactory, $instance->repositoryFactory, $instance->expressionBuilder, $instance->closed, $instance->filterCollection, $instance->cache);\n }, $instance, 'Doctrine\\\\ORM\\\\EntityManager')->__invoke($instance);\n\n $instance->initializerd0fa7 = $initializer;\n\n return $instance;\n }\n\n protected function __construct(\\Doctrine\\DBAL\\Connection $conn, \\Doctrine\\ORM\\Configuration $config, \\Doctrine\\Common\\EventManager $eventManager)\n {\n static $reflection;\n\n if (! $this->valueHolder8f2f0) {\n $reflection = $reflection ?? new \\ReflectionClass('Doctrine\\\\ORM\\\\EntityManager');\n $this->valueHolder8f2f0 = $reflection->newInstanceWithoutConstructor();\n \\Closure::bind(function (\\Doctrine\\ORM\\EntityManager $instance) {\n unset($instance->config, $instance->conn, $instance->metadataFactory, $instance->unitOfWork, $instance->eventManager, $instance->proxyFactory, $instance->repositoryFactory, $instance->expressionBuilder, $instance->closed, $instance->filterCollection, $instance->cache);\n }, $this, 'Doctrine\\\\ORM\\\\EntityManager')->__invoke($this);\n\n }\n\n $this->valueHolder8f2f0->__construct($conn, $config, $eventManager);\n }\n\n public function & __get($name)\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, '__get', ['name' => $name], $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n if (isset(self::$publicProperties6b99d[$name])) {\n return $this->valueHolder8f2f0->$name;\n }\n\n $realInstanceReflection = new \\ReflectionClass(get_parent_class($this));\n\n if (! $realInstanceReflection->hasProperty($name)) {\n $targetObject = $this->valueHolder8f2f0;\n\n $backtrace = debug_backtrace(false);\n trigger_error(\n sprintf(\n 'Undefined property: %s::$%s in %s on line %s',\n get_parent_class($this),\n $name,\n $backtrace[0]['file'],\n $backtrace[0]['line']\n ),\n \\E_USER_NOTICE\n );\n return $targetObject->$name;\n return;\n }\n\n $targetObject = $this->valueHolder8f2f0;\n $accessor = function & () use ($targetObject, $name) {\n return $targetObject->$name;\n };\n $backtrace = debug_backtrace(true);\n $scopeObject = isset($backtrace[1]['object']) ? $backtrace[1]['object'] : new \\ProxyManager\\Stub\\EmptyClassStub();\n $accessor = $accessor->bindTo($scopeObject, get_class($scopeObject));\n $returnValue = & $accessor();\n\n return $returnValue;\n }\n\n public function __set($name, $value)\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, '__set', array('name' => $name, 'value' => $value), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n $realInstanceReflection = new \\ReflectionClass(get_parent_class($this));\n\n if (! $realInstanceReflection->hasProperty($name)) {\n $targetObject = $this->valueHolder8f2f0;\n\n return $targetObject->$name = $value;\n return;\n }\n\n $targetObject = $this->valueHolder8f2f0;\n $accessor = function & () use ($targetObject, $name, $value) {\n return $targetObject->$name = $value;\n };\n $backtrace = debug_backtrace(true);\n $scopeObject = isset($backtrace[1]['object']) ? $backtrace[1]['object'] : new \\ProxyManager\\Stub\\EmptyClassStub();\n $accessor = $accessor->bindTo($scopeObject, get_class($scopeObject));\n $returnValue = & $accessor();\n\n return $returnValue;\n }\n\n public function __isset($name)\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, '__isset', array('name' => $name), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n $realInstanceReflection = new \\ReflectionClass(get_parent_class($this));\n\n if (! $realInstanceReflection->hasProperty($name)) {\n $targetObject = $this->valueHolder8f2f0;\n\n return isset($targetObject->$name);\n return;\n }\n\n $targetObject = $this->valueHolder8f2f0;\n $accessor = function () use ($targetObject, $name) {\n return isset($targetObject->$name);\n };\n $backtrace = debug_backtrace(true);\n $scopeObject = isset($backtrace[1]['object']) ? $backtrace[1]['object'] : new \\ProxyManager\\Stub\\EmptyClassStub();\n $accessor = $accessor->bindTo($scopeObject, get_class($scopeObject));\n $returnValue = $accessor();\n\n return $returnValue;\n }\n\n public function __unset($name)\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, '__unset', array('name' => $name), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n $realInstanceReflection = new \\ReflectionClass(get_parent_class($this));\n\n if (! $realInstanceReflection->hasProperty($name)) {\n $targetObject = $this->valueHolder8f2f0;\n\n unset($targetObject->$name);\n return;\n }\n\n $targetObject = $this->valueHolder8f2f0;\n $accessor = function () use ($targetObject, $name) {\n unset($targetObject->$name);\n };\n $backtrace = debug_backtrace(true);\n $scopeObject = isset($backtrace[1]['object']) ? $backtrace[1]['object'] : new \\ProxyManager\\Stub\\EmptyClassStub();\n $accessor = $accessor->bindTo($scopeObject, get_class($scopeObject));\n $returnValue = $accessor();\n\n return $returnValue;\n }\n\n public function __clone()\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, '__clone', array(), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n $this->valueHolder8f2f0 = clone $this->valueHolder8f2f0;\n }\n\n public function __sleep()\n {\n $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, '__sleep', array(), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n\n return array('valueHolder8f2f0');\n }\n\n public function __wakeup()\n {\n \\Closure::bind(function (\\Doctrine\\ORM\\EntityManager $instance) {\n unset($instance->config, $instance->conn, $instance->metadataFactory, $instance->unitOfWork, $instance->eventManager, $instance->proxyFactory, $instance->repositoryFactory, $instance->expressionBuilder, $instance->closed, $instance->filterCollection, $instance->cache);\n }, $this, 'Doctrine\\\\ORM\\\\EntityManager')->__invoke($this);\n }\n\n public function setProxyInitializer(\\Closure $initializer = null)\n {\n $this->initializerd0fa7 = $initializer;\n }\n\n public function getProxyInitializer()\n {\n return $this->initializerd0fa7;\n }\n\n public function initializeProxy() : bool\n {\n return $this->initializerd0fa7 && ($this->initializerd0fa7->__invoke($valueHolder8f2f0, $this, 'initializeProxy', array(), $this->initializerd0fa7) || 1) && $this->valueHolder8f2f0 = $valueHolder8f2f0;\n }\n\n public function isProxyInitialized() : bool\n {\n return null !== $this->valueHolder8f2f0;\n }\n\n public function getWrappedValueHolderValue() : ?object\n {\n return $this->valueHolder8f2f0;\n }\n\n\n}\n"
} I can work around the issue by adding the following to my protected function configureContainer(ContainerBuilder $container, LoaderInterface $loader): void
{
// ...
$container->setParameter('container.dumper.inline_class_loader', false);
} |
Should be fixed by #33180, please give it a try if you can confirm. |
I tried the PR, there seems to be a small issue. See the comment. In retrospect I think @derrabus and myself ran into a different issue. |
This PR was merged into the 3.4 branch. Discussion ---------- [ProxyManager] fix closure binding | Q | A | ------------- | --- | Branch? | 3.4 | Bug fix? | yes | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | #33037 | License | MIT | Doc PR | - Follows #32992 Commits ------- 31f9208 [ProxyManager] fix closure binding
@Devristo no need for a separate PR, the gist above fails, I was mislead by the original description which is about something else :) |
Symfony version(s) affected: 4.4.*
PHP Version: PHP 7.3.7-2+ubuntu18.04.1
Description
PHP Warning: Cannot bind an instance to a static closure in /tmp/intima/cache/ContainerXozEiPa/EntityManager_9a5be93.php on line 317
!! PHP Fatal error: Uncaught Error: Call to a member function __invoke() on null in /tmp/intima/cache/ContainerXozEiPa/EntityManager_9a5be93.php:317
!! Stack trace:
!! #0 /tmp/intima/cache/ContainerXozEiPa/srcApp_KernelDevDebugContainer.php(399): EntityManager_9a5be93::staticProxyConstructor(Object(Closure))
!! #1 /tmp/intima/cache/ContainerXozEiPa/srcApp_KernelDevDebugContainer.php(235): ContainerXozEiPa\srcApp_KernelDevDebugContainer->ContainerXozEiPa{closure}()
!! #2 /tmp/intima/cache/ContainerXozEiPa/srcApp_KernelDevDebugContainer.php(400): ContainerXozEiPa\srcApp_KernelDevDebugContainer->createProxy('EntityManager_9...', Object(Closure))
!! #3 /tmp/intima/cache/ContainerXozEiPa/srcApp_KernelDevDebugContainer.php(2096): ContainerXozEiPa\srcApp_KernelDevDebugContainer->getDoctrine_Orm_DefaultEntityManagerService()
!! #4 /tmp/intima/cache/ContainerXozEiPa/getValidator_Mapping_CacheWarmerService.php(9): ContainerXozEiPa\srcApp_KernelDevDebugContainer->getValidator_BuilderService()
!! #5 /tmp/intima/cache/ContainerXozEiPa/srcApp_KernelDevDebugConta in /tmp/intima/cache/ContainerXozEiPa/EntityManager_9a5be93.php on line 317
How to reproduce
Update Symfony to latest version 4.4.*
Run cache:clear
The text was updated successfully, but these errors were encountered: