Doktrin-Verhaltenserweiterungen
Dieses Paket enthält Erweiterungen für Doctrine ORM und MongoDB ODM, die neue Funktionen oder Tools bieten, um Doctrine effizienter zu nutzen. Diese Verhaltensweisen können problemlos an das Ereignissystem von Doctrine angehängt werden und die gelöschten Datensätze verhaltensorientiert handhaben.
Doctrine Extensions 3.0 veröffentlicht
3.0 konzentriert sich auf die Aktualisierung dieses Pakets für das heutige PHP. Dazu gehört:
- Erhöhung der Mindestversionsanforderungen von PHP, Doctrine und anderen Abhängigkeiten
- Implementierung der Unterstützung für die neuesten Doctrine MongoDB- und Common-Pakete
- Aktualisieren der Testsuite, Hinzufügen von Code- und Stilstandards sowie anderer benötigter Build-Tools
- Bereinigen von Dokumentation, Code, Kommentaren usw.
Weitere Informationen finden Sie im Upgrade-Dokument.
Installation
composer require gedmo/doctrine-extensions
Upgrade
Erweiterungen
ORM und MongoDB ODM
- Blameable – aktualisiert Zeichenfolgen- oder Referenzfelder beim Erstellen, Aktualisieren und sogar bei Eigenschaftsänderungen mit einer Zeichenfolge oder einem Objekt (z. B. Benutzer).
- Protokollierbar – hilft bei der Verfolgung von Änderungen und dem Verlauf von Objekten und unterstützt auch die Versionsverwaltung.
- Slugable – urlisiert Ihre angegebenen Felder in einen einzigen eindeutigen Slug
- Zeitstempelbar – aktualisiert Datumsfelder beim Erstellen, Aktualisieren und sogar bei Eigenschaftsänderungen.
- Übersetzbar – bietet Ihnen eine sehr praktische Lösung zum Übersetzen von Datensätzen in verschiedene Sprachen. Einfach einzurichten, einfacher zu bedienen.
- Baum – automatisiert den Baumverarbeitungsprozess und fügt dem Repository einige baumspezifische Funktionen hinzu. ( Abschluss , verschachtelter Satz oder materialisierter Pfad ) (MongoDB ODM unterstützt nur materialisierten Pfad)
Nur ORM
- IpTraceable – von Timestampable geerbt, legt die IP-Adresse anstelle des Zeitstempels fest
- SoftDeleteable – ermöglicht das implizite Entfernen von Datensätzen
- Sortierbar – macht jedes Dokument oder jede Entität sortierbar
- Hochladbar – bietet Datei-Upload-Handhabung in Entitätsfeldern
Nur MongoDB ODM
- Referenzen – unterstützt die Verknüpfung von Entitäten in Dokumenten und umgekehrt
- ReferenceIntegrity – schränkt ODM MongoDB-Dokumentverweise ein
Alle Erweiterungen unterstützen die Zuordnung von Attributen , XML und Annotationen (veraltet). Zusätzliche Mapping-Treiber können mithilfe der Mapping-Erweiterung einfach implementiert werden, um die zusätzliche Metadatenzuordnung zu verwalten.
Versionskompatibilität
- DBAL:
^3.2
(für alle Erweiterungen) oder ^4.0
(für alle Erweiterungen außer Loggable ) - ORM:
^2.14
oder ^3.0
- MongoDB ODM:
^2.3
Wenn Sie den Entity Manager ohne Framework einrichten, sehen Sie sich das Beispiel an, um Probleme wie #1310 zu vermeiden
XML-Zuordnung
Die XML-Zuordnung muss sich in einem anderen Namespace befinden. Der deklarierte Namespace für Doctrine-Erweiterungen ist http://gediminasm.org/schemas/orm/doctrine-extensions-mapping. Der Root-Knoten sieht jetzt also so aus:
< doctrine-mapping xmlns = " http://doctrine-project.org/schemas/orm/doctrine-mapping "
xmlns : gedmo = " http://gediminasm.org/schemas/orm/doctrine-extensions-mapping " >
...
</ doctrine-mapping >
XML-Zuordnungs-XSD-Schemas sind ebenfalls versioniert und können nach dem Versionssuffix verwendet werden:
- Neueste Version – http://gediminasm.org/schemas/orm/doctrine-extensions-mapping
- 2.2.x-Version – http://gediminasm.org/schemas/orm/doctrine-extensions-mapping-2-2
- 2.1.x-Version – http://gediminasm.org/schemas/orm/doctrine-extensions-mapping-2-1
Ausführen von Tests
Gehen Sie folgendermaßen vor, um die Tests einzurichten und auszuführen:
- Installieren Sie Docker und stellen Sie sicher, dass Sie über
docker compose
verfügen - Führen Sie im Projektstammverzeichnis
docker compose up -d
aus, um Container im Daemon-Modus zu starten - Geben Sie den Container über
docker compose exec php bash
ein (Sie befinden sich jetzt im Stammverzeichnis: /var/www
) - Installieren Sie Composer-Abhängigkeiten über
composer install
- Führen Sie die Tests aus:
vendor/bin/phpunit
Ausführen des Beispiels
Um ein Beispiel einzurichten und auszuführen, führen Sie die folgenden Schritte aus:
- Gehen Sie zum Stammverzeichnis der Erweiterungen
- Composer herunterladen
- Entwicklerbibliotheken installieren:
composer install
- Bearbeiten Sie
example/em.php
und konfigurieren Sie Ihre Datenbank über der Datei - Führen Sie Folgendes aus:
php example/bin/console
oder php example/bin/console
für Konsolenbefehle - Führen Sie Folgendes aus:
php example/bin/console orm:schema-tool:create
um das Schema zu erstellen - Führen Sie Folgendes aus:
php example/bin/console app:print-category-translation-tree
um das Beispiel zum Drucken des Kategorieübersetzungsbaums auszuführen
Mitwirkende
Vielen Dank an alle, die an der Entwicklung dieser großartigen Doctrine-Erweiterungen beteiligt waren!
Und insbesondere diejenigen, die neue Erweiterungen erstellen und pflegen:
- Lukas Botsch lbotsch
- Gustavo Adrian ist angenehm taub
- Boussekeyt Jules GordonsLondon
- Kudryashov Konstantin Everzet
- David Buchmann dbu