Esto es lo que me gustaría usar:
#[ORM\Column(type: "string")]en lugar de esto:
/** * @ORM\Column(type="string") */Pero estoy recibiendo este error:
(error: Class 'Column' is not annotated with 'Attribute' )¿Es porque Doctrine aún no lo admite, o me estoy perdiendo algo?
EDITAR: Doctrine 2.9 ahora se lanza con compatibilidad con atributos de PHP 8.
Las anotaciones de PHP 8 se fusionaron en la rama Doctrine ORM 2.9.x que aún no se ha publicado: https://github.com/doctrine/orm/pull/8266
Aquí está la referencia de la documentación relacionada con esta característica: https://www.doctrine-project.org/projects/doctrine-orm/en/current/reference/attributes-reference.html
Como dice @Seb33300, sí, ahora es posible en Doctrine ORM 2.9. Pero para Symfony necesitas hacer un poco más que eso. Aquí hay una lista completa de pasos para actualizar:
Actualizar Doctrine ORM: "doctrine/orm": "^2.9" .
Actualizar Doctrine Bundle: "doctrine/doctrine-bundle": "^2.4" .
Establezca la doctrine.orm.mappings.App.type: attribute (de forma predeterminada, está configurado en annotation ):
# config/packages/doctrine.yaml doctrine: orm: mappings: App: type: attributeAplique cambios similares a sus entidades:
--- Dummy.php.old Mon Jun 07 00:00:00 2021 +++ Dummy.php Mon Jun 07 00:00:00 2021 @@ -7,15 +7,11 @@ use App\Repository\DummyRepository; use Doctrine\ORM\Mapping as ORM; -/** - * @ORM\Entity(repositoryClass = DummyRepository::class) - */ +#[ORM\Entity(repositoryClass: DummyRepository::class)] class Dummy { - /** - * @ORM\Id - * @ORM\GeneratedValue - * @ORM\Column(type = 'integer') - */ + #[ORM\Id] + #[ORM\GeneratedValue] + #[ORM\Column(type: 'integer')] private $id; }