1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
<?php
declare(strict_types=1);
namespace Doctrine\Tests\ORM\Mapping;
use Doctrine\ORM\Event\LoadClassMetadataEventArgs;
use Doctrine\ORM\Events;
use Doctrine\ORM\Mapping\Column;
use Doctrine\ORM\Mapping\Entity;
use Doctrine\ORM\Mapping\GeneratedValue;
use Doctrine\ORM\Mapping\Id;
use Doctrine\ORM\Mapping\Table;
use Doctrine\Tests\OrmTestCase;
class ClassMetadataLoadEventTest extends OrmTestCase
{
/** @group DDC-1610 */
public function testEvent(): void
{
$em = $this->getTestEntityManager();
$metadataFactory = $em->getMetadataFactory();
$evm = $em->getEventManager();
$evm->addEventListener(Events::loadClassMetadata, $this);
$classMetadata = $metadataFactory->getMetadataFor(LoadEventTestEntity::class);
self::assertTrue($classMetadata->hasField('about'));
self::assertArrayHasKey('about', $classMetadata->reflFields);
self::assertInstanceOf('ReflectionProperty', $classMetadata->reflFields['about']);
}
public function loadClassMetadata(LoadClassMetadataEventArgs $eventArgs): void
{
$classMetadata = $eventArgs->getClassMetadata();
$field = [
'fieldName' => 'about',
'type' => 'string',
'length' => 255,
];
$classMetadata->mapField($field);
}
}
/**
* @Entity
* @Table(name="load_event_test_entity")
*/
class LoadEventTestEntity
{
/**
* @var int
* @Id
* @Column(type="integer")
* @GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
* @Column(type="string", length=255)
*/
private $name;
/** @var mixed */
private $about;
}
|