Extensiones conductuales de doctrina
Este paquete contiene extensiones para Doctrine ORM y MongoDB ODM que ofrecen nuevas funcionalidades o herramientas para usar Doctrine de manera más eficiente. Estos comportamientos se pueden adjuntar fácilmente al sistema de eventos de Doctrine y manejar los registros que se eliminan de manera conductual.
Extensiones de Doctrine 3.0 lanzadas
3.0 se centra en actualizar este paquete para el PHP actual. Esto incluye:
- Superando los requisitos mínimos de versión de PHP, Doctrine y otras dependencias
- Implementación de soporte para los últimos paquetes Doctrine MongoDB y Common
- Actualizar el conjunto de pruebas, agregar código y estándares de estilo, y otras herramientas de compilación necesarias.
- Limpieza de documentación, código, comentarios, etc.
Lea el documento de actualización para obtener más información.
Instalación
composer require gedmo/doctrine-extensions
Actualización
Extensiones
ORM y MongoDB ODM
- Culpable : actualiza cadenas o campos de referencia al crear, actualizar e incluso cambiar propiedades con una cadena u objeto (por ejemplo, usuario).
- Registrable : ayuda a rastrear los cambios y el historial de los objetos, también admite la gestión de versiones.
- Sluggable : URLiza los campos especificados en un solo slug único
- Marca de tiempo : actualiza los campos de fecha al crear, actualizar e incluso cambiar la propiedad.
- Traducible : le brinda una solución muy útil para traducir registros a diferentes idiomas. Fácil de configurar, más fácil de usar.
- Árbol : automatiza el proceso de manejo del árbol y agrega algunas funciones específicas del árbol en el repositorio. ( cierre , conjunto anidado o ruta materializada ) (MongoDB ODM solo admite rutas materializadas)
Sólo ORM
- IpTraceable : heredado de Timestampable, establece la dirección IP en lugar de la marca de tiempo
- SoftDeleteable : permite eliminar registros implícitamente
- Ordenable : hace que cualquier documento o entidad se pueda ordenar
- Cargable : proporciona manejo de carga de archivos en campos de entidad
Solo MongoDB ODM
- Referencias : admite la vinculación de entidades en documentos y viceversa
- ReferenceIntegrity : restringe las referencias de documentos ODM MongoDB
Todas las extensiones admiten mapeo de atributos , XML y anotaciones (en desuso). Se pueden implementar fácilmente controladores de mapeo adicionales utilizando la extensión Mapping para manejar el mapeo de metadatos adicionales.
Compatibilidad de versiones
- DBAL:
^3.2
(para todas las extensiones) o ^4.0
(para todas las extensiones, excepto Loggable ) - ORM:
^2.14
o ^3.0
- ODM de MongoDB:
^2.3
Si está configurando Entity Manager sin un marco, consulte el ejemplo para evitar problemas como el número 1310.
Mapeo XML
El mapeo XML debe estar en un espacio de nombres diferente, el espacio de nombres declarado para las extensiones de Doctrine es http://gediminasm.org/schemas/orm/doctrine-extensions-mapping Entonces el nodo raíz ahora se ve así:
< doctrine-mapping xmlns = " http://doctrine-project.org/schemas/orm/doctrine-mapping "
xmlns : gedmo = " http://gediminasm.org/schemas/orm/doctrine-extensions-mapping " >
...
</ doctrine-mapping >
Los esquemas xsd de mapeo XML también están versionados y pueden usarse por sufijo de versión:
- Última versión: http://gediminasm.org/schemas/orm/doctrine-extensions-mapping
- Versión 2.2.x: http://gediminasm.org/schemas/orm/doctrine-extensions-mapping-2-2
- Versión 2.1.x: http://gediminasm.org/schemas/orm/doctrine-extensions-mapping-2-1
Ejecución de pruebas
Para configurar y ejecutar las pruebas, siga estos pasos:
- Instale Docker y asegúrese de tener
docker compose
- Desde la raíz del proyecto, ejecute
docker compose up -d
para iniciar contenedores en modo demonio - Ingrese al contenedor a través de
docker compose exec php bash
(ahora se encuentra en el directorio raíz: /var/www
) - Instale las dependencias de Composer mediante
composer install
- Ejecute las pruebas:
vendor/bin/phpunit
Ejecutando el ejemplo
Para configurar y ejecutar el ejemplo, siga estos pasos:
- ir al directorio raíz de extensiones
- descargar compositor
- instalar bibliotecas de desarrollo:
composer install
- edite
example/em.php
y configure su base de datos encima del archivo - ejecutar:
php example/bin/console
o php example/bin/console
para comandos de consola - ejecute:
php example/bin/console orm:schema-tool:create
para crear el esquema - ejecute:
php example/bin/console app:print-category-translation-tree
para ejecutar el ejemplo para imprimir el árbol de traducción de categorías
Colaboradores
¡Gracias a todos los que participaron en el desarrollo de estas fantásticas extensiones de Doctrine!
Y especialmente aquellos que crean y mantienen nuevas extensiones:
- Lukas Botsch lbotsch
- Gustavo Adrián cómodamente entumecido
- Boussekeyt Jules Gordon Londres
- Kudryashov Konstantin Everzet
- David Buchmann