Extensions comportementales de la doctrine
Ce package contient des extensions pour Doctrine ORM et MongoDB ODM qui offrent de nouvelles fonctionnalités ou de nouveaux outils pour utiliser Doctrine plus efficacement. Ces comportements peuvent être facilement attachés au système d'événements de Doctrine et gérer les enregistrements vidés de manière comportementale.
Publication des extensions de doctrine 3.0
3.0 se concentre sur l'actualisation de ce package pour le PHP actuel. Cela comprend :
- Suppression des exigences de version minimales de PHP, Doctrine et autres dépendances
- Implémentation de la prise en charge des derniers packages Doctrine MongoDB et Common
- Mettre à jour la suite de tests, ajouter des normes de code et de style, ainsi que d'autres outils de construction nécessaires
- Nettoyer la documentation, le code, les commentaires, etc.
Lisez le document de mise à niveau pour plus d'informations.
Installation
composer require gedmo/doctrine-extensions
Mise à niveau
Rallonges
ORM et MongoDB ODM
- Blameable - met à jour les champs de chaîne ou de référence lors de la création, de la mise à jour et même du changement de propriété avec une chaîne ou un objet (par exemple, un utilisateur).
- Loggable - permet de suivre les modifications et l'historique des objets, prend également en charge la gestion des versions.
- Sluggable - urlise vos champs spécifiés en un seul slug unique
- Horodatage - met à jour les champs de date lors de la création, de la mise à jour et même du changement de propriété.
- Traduisible - vous offre une solution très pratique pour traduire des enregistrements dans différentes langues. Facile à installer, plus facile à utiliser.
- Tree - automatise le processus de gestion des arborescences et ajoute des fonctions spécifiques à l'arborescence sur le référentiel. ( fermeture , ensemble imbriqué ou chemin matérialisé ) (MongoDB ODM ne prend en charge que le chemin matérialisé)
ORM uniquement
- IpTraceable - hérité de Timestampable, définit l'adresse IP au lieu de l'horodatage
- SoftDeleteable - permet de supprimer implicitement des enregistrements
- Triable - rend tout document ou entité triable
- Téléchargeable : permet la gestion du téléchargement de fichiers dans les champs d'entité
MongoDB ODM uniquement
- Références - prend en charge la liaison des entités dans les documents et vice versa
- ReferenceIntegrity - contraint les références aux documents ODM MongoDB
Toutes les extensions prennent en charge le mappage Attribut , XML et Annotation (obsolète). Des pilotes de mappage supplémentaires peuvent être facilement implémentés à l’aide de l’extension Mapping pour gérer le mappage de métadonnées supplémentaire.
Compatibilité des versions
- DBAL :
^3.2
(pour toutes les extensions) ou ^4.0
(pour toutes les extensions, sauf Loggable ) - ORM :
^2.14
ou ^3.0
- ODM MongoDB :
^2.3
Si vous configurez Entity Manager sans framework, consultez l'exemple pour éviter des problèmes tels que #1310
Mappage XML
Le mappage XML doit être dans un espace de noms différent, l'espace de noms déclaré pour les extensions Doctrine est http://gediminasm.org/schemas/orm/doctrine-extensions-mapping. Le nœud racine ressemble maintenant à ceci :
< doctrine-mapping xmlns = " http://doctrine-project.org/schemas/orm/doctrine-mapping "
xmlns : gedmo = " http://gediminasm.org/schemas/orm/doctrine-extensions-mapping " >
...
</ doctrine-mapping >
Les schémas XSD de mappage XML sont également versionnés et peuvent être utilisés par suffixe de version :
- Dernière version - http://gediminasm.org/schemas/orm/doctrine-extensions-mapping
- Version 2.2.x - http://gediminasm.org/schemas/orm/doctrine-extensions-mapping-2-2
- Version 2.1.x - http://gediminasm.org/schemas/orm/doctrine-extensions-mapping-2-1
Exécution de tests
Pour configurer et exécuter les tests, procédez comme suit :
- Installez Docker et assurez-vous que
docker compose
- Depuis la racine du projet, exécutez
docker compose up -d
pour démarrer les conteneurs en mode démon - Entrez le conteneur via
docker compose exec php bash
(vous êtes maintenant dans le répertoire racine : /var/www
) - Installer les dépendances de Composer via
composer install
- Exécutez les tests :
vendor/bin/phpunit
Exécution de l'exemple
Pour configurer et exécuter l'exemple, procédez comme suit :
- allez dans le répertoire racine des extensions
- télécharger le compositeur
- installer les bibliothèques de développement :
composer install
- éditez
example/em.php
et configurez votre base de données en haut du fichier - exécuter :
php example/bin/console
ou php example/bin/console
pour les commandes de la console - run:
php example/bin/console orm:schema-tool:create
pour créer le schéma - run:
php example/bin/console app:print-category-translation-tree
pour exécuter l'exemple pour imprimer l'arborescence de traduction des catégories
Contributeurs
Merci à tous ceux qui ont participé au développement de ces superbes extensions de Doctrine !
Et surtout ceux qui créent et maintiennent de nouvelles extensions :
- Lukas Botsch lbotsch
- Gustavo Adrian confortablement engourdi
- Boussekeyt Jules gordonslondres
- Kudryashov Konstantin Everzet
- David Buchmann, directeur adjoint