glm
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?
daniel v
Como dice @Seb33300, sí, es ahora es posible en Doctrina 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"
. -
Paquete de actualización de Doctrine:
"doctrine/doctrine-bundle": "^2.4"
. -
Colocar
doctrine.orm.mappings.App.type: attribute
(por defecto está configurado paraannotation
):# config/packages/doctrine.yaml doctrine: orm: mappings: App: type: attribute
-
Aplique 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; }
-
El cambio de “anotación” a “atributo” es fundamental. Gracias por documentarlo.
-Jason Aller
10 de junio de 2021 a las 1:06
-
¿Hay alguna manera de permitir que ambos tengan una migración sin problemas para los atributos existentes?
– Las nueces
10 abr a las 16:51
-
@the_nuts ¿Podría encontrar una manera de permitir ambos? Por favor hagamelo saber
– na
15 de diciembre a las 12:39
-
@nas sí, creé otro directorio, así que lo que tengo en
Entity
todavía está con anotación, y lo que tengo enEntAttribs
(no pude encontrar un mejor nombre lol) es con atributos: pastebin.com/VS1jGD8x– Las nueces
19 de diciembre a las 14:16
seb33300
EDITAR: Doctrina 2.9 ahora se libera con soporte de atributos de PHP 8!
Las anotaciones de PHP 8 se han fusionado en Doctrine ORM 2.9.x
rama que aún no se ha lanzado:
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
¿Qué caso de uso tiene para necesitar usar anotaciones como esa? ¿Qué estás tratando de resolver?
– codificador hppy
23 de marzo de 2021 a las 20:32
En caso de que tenga cientos de anotaciones y desee convertirlas en atributos, es posible que prefiera automatizar esto. Escribí una herramienta de código abierto, Rector, que maneja esta actualización por usted: getrector.org/blog/how-to-upgrade-annotations-to-attributes
– Tomás Votruba
13 oct 2021 a las 19:22