我有一些相当无辜的ORM代码:
/** @var $motor Motor */
$motor = $this->getRepository(Motor::class)->findOneBy(array(
'resourceProduct' => $productId
));
当我想要打印出一个属性时,打印出来就好了,就像这样:
print_r($motor->getModel()); // "ABC"
但是当我想打印出整个物体时,我遇到了麻烦。像这样:
print_r($motor);
输出超过1,000,000行,然后退出并显示以下错误:
Fatal error: Allowed memory size of 134217728 bytes exhausted
(tried to allocate 127664128 bytes) in MotorFactory.php on line XX
打印出来的内容是什么?
我不能在这里发布所有内容,只是一个经过编辑的代码段:
Motor Object
(
[id:Motor:private] => 731
[resourceProduct:Motor:private] => DoctrineProxies\__CG__\ResourceProduct Object
(
[__initializer__] => Closure Object
(
[static] => Array
(
[entityPersister] => Doctrine\ORM\Persisters\Entity\BasicEntityPersister Object
(
[class:protected] => Doctrine\ORM\Mapping\ClassMetadata Object
[conn:protected] => Doctrine\DBAL\Connection Object
(
[_config:protected] => Doctrine\ORM\Configuration Object
(
[_attributes:protected] => Array
(
[metadataCacheImpl] => Doctrine\Common\Cache\ArrayCache Object
(
[data:Doctrine\Common\Cache\ArrayCache:private] => Array
(
[dc2_b1e855bc8c5c80316087e39e6c34bc26_[MotorFrame$CLASSMETADATA][1]] => Array
[dc2_b1e855bc8c5c80316087e39e6c34bc26_[Motor$CLASSMETADATA][1]] => Array
[dc2_b1e855bc8c5c80316087e39e6c34bc26_[ResourceProduct$CLASSMETADATA][1]] => Array
)
)
[queryCacheImpl] => Doctrine\Common\Cache\ArrayCache Object
(
[data:Doctrine\Common\Cache\ArrayCache:private] => Array
[resultCacheImpl] => Doctrine\Common\Cache\ArrayCache Object
(
它只是继续打开,打开和打开,在此之后1048583行压痕水平为124个空格并且没有停止的迹象。
这里发生了什么?
我的期望是,我会得到我的好的,需要Motor
对象,只有10个漂亮而整洁的属性,但我会得到某种怪物。