Das möchte ich verwenden:
#[ORM\Column(type: "string")]
an Stelle von:
/**
* @ORM\Column(type="string")
*/
Aber ich bekomme diesen Fehler:
(error: Class 'Column' is not annotated with 'Attribute' )
Liegt es daran, dass Doctrine es noch nicht unterstützt, oder übersehe ich etwas?
Wie @Seb33300 sagt, ja, das ist es jetzt möglich in Lehre ORM 2.9. Aber für Symfony müssen Sie ein bisschen mehr tun. Hier ist eine vollständige Liste der Upgrade-Schritte:
-
Doctrine-ORM aktualisieren: "doctrine/orm": "^2.9"
.
-
Doktrinenpaket upgraden: "doctrine/doctrine-bundle": "^2.4"
.
-
Satz doctrine.orm.mappings.App.type: attribute
(standardmäßig ist es auf eingestellt annotation
):
# config/packages/doctrine.yaml
doctrine:
orm:
mappings:
App:
type: attribute
-
Wenden Sie ähnliche Änderungen auf Ihre Entitäten an:
--- 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;
}
EDIT: Lehre 2.9 ist jetzt freigegeben mit Unterstützung für PHP 8-Attribute!
PHP 8-Anmerkungen wurden in Doctrine ORM zusammengeführt 2.9.x
Branche, die noch nicht freigegeben ist:
https://github.com/doctrine/orm/pull/8266
Hier ist die Dokumentationsreferenz zu dieser Funktion:
https://www.doctrine-project.org/projects/doctrine-orm/en/current/reference/attributes-reference.html
Welchen Anwendungsfall haben Sie, um solche Anmerkungen verwenden zu müssen? Was versuchst du zu lösen?
– Hppycoder
23. März 2021 um 20:32 Uhr
Falls Sie Hunderte von Anmerkungen haben und diese Attribute konvertieren möchten, ziehen Sie es vielleicht vor, dies zu automatisieren. Ich habe ein Open-Source-Tool Rector geschrieben, das dieses Upgrade für Sie durchführt: getrector.org/blog/how-to-upgrade-annotations-to-attributes
– Tomas Votruba
13. Oktober 2021 um 19:22 Uhr