[VarDumper] casters for Doctrine objects
This commit is contained in:
parent
0a92c08699
commit
c426d8bc09
73
src/Symfony/Component/VarDumper/Caster/DoctrineCaster.php
Normal file
73
src/Symfony/Component/VarDumper/Caster/DoctrineCaster.php
Normal file
@ -0,0 +1,73 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Symfony package.
|
||||
*
|
||||
* (c) Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Symfony\Component\VarDumper\Caster;
|
||||
|
||||
use Doctrine\Common\Persistence\ObjectManager;
|
||||
use Doctrine\Common\Proxy\Proxy as CommonProxy;
|
||||
use Doctrine\ORM\Proxy\Proxy as OrmProxy;
|
||||
use Doctrine\ORM\PersistentCollection;
|
||||
|
||||
/**
|
||||
* Casts Doctrine related classes to array representation.
|
||||
*
|
||||
* @author Nicolas Grekas <p@tchwork.com>
|
||||
*/
|
||||
class DoctrineCaster
|
||||
{
|
||||
public static function castCommonProxy(CommonProxy $proxy, array $a, $isNested, &$cut)
|
||||
{
|
||||
unset(
|
||||
$a['__cloner__'],
|
||||
$a['__initializer__']
|
||||
);
|
||||
$cut += 2;
|
||||
|
||||
return $a;
|
||||
}
|
||||
|
||||
public static function castOrmProxy(OrmProxy $proxy, array $a, $isNested, &$cut)
|
||||
{
|
||||
$prefix = "\0Doctrine\\ORM\\Proxy\\Proxy\0";
|
||||
unset(
|
||||
$a[$prefix.'_entityPersister'],
|
||||
$a[$prefix.'_identifier']
|
||||
);
|
||||
$cut += 2;
|
||||
|
||||
return $a;
|
||||
}
|
||||
|
||||
public static function castObjectManager(ObjectManager $manager, array $a, $isNested, &$cut)
|
||||
{
|
||||
if ($isNested) {
|
||||
$cut += count($a);
|
||||
|
||||
return array();
|
||||
}
|
||||
|
||||
return $a;
|
||||
}
|
||||
|
||||
public static function castPersistentCollection(PersistentCollection $coll, array $a, $isNested, &$cut)
|
||||
{
|
||||
$prefix = "\0Doctrine\\ORM\\PersistentCollection\0";
|
||||
unset(
|
||||
$a[$prefix.'snapshot'],
|
||||
$a[$prefix.'association'],
|
||||
$a[$prefix.'em'],
|
||||
$a[$prefix.'typeClass']
|
||||
);
|
||||
$cut += 4;
|
||||
|
||||
return $a;
|
||||
}
|
||||
}
|
@ -24,6 +24,11 @@ abstract class AbstractCloner implements ClonerInterface
|
||||
'o:Closure' => 'Symfony\Component\VarDumper\Caster\ReflectionCaster::castClosure',
|
||||
'o:Reflector' => 'Symfony\Component\VarDumper\Caster\ReflectionCaster::castReflector',
|
||||
|
||||
'o:Doctrine\Common\Persistence\ObjectManager' => 'Symfony\Component\VarDumper\Caster\DoctrineCaster::castObjectManager',
|
||||
'o:Doctrine\Common\Proxy\Proxy' => 'Symfony\Component\VarDumper\Caster\DoctrineCaster::castCommonProxy',
|
||||
'o:Doctrine\ORM\Proxy\Proxy' => 'Symfony\Component\VarDumper\Caster\DoctrineCaster::castOrmProxy',
|
||||
'o:Doctrine\ORM\PersistentCollection' => 'Symfony\Component\VarDumper\Caster\DoctrineCaster::castPersistentCollection',
|
||||
|
||||
'o:ErrorException' => 'Symfony\Component\VarDumper\Caster\ExceptionCaster::castErrorException',
|
||||
'o:Exception' => 'Symfony\Component\VarDumper\Caster\ExceptionCaster::castException',
|
||||
'o:Symfony\Component\VarDumper\Exception\ThrowingCasterException'
|
||||
|
Reference in New Issue
Block a user