Extensões Comportamentais da Doutrina
Este pacote contém extensões para Doctrine ORM e MongoDB ODM que oferecem novas funcionalidades ou ferramentas para usar o Doctrine de forma mais eficiente. Esses comportamentos podem ser facilmente anexados ao sistema de eventos do Doctrine e lidar com os registros que estão sendo liberados de forma comportamental.
Extensões de Doutrina 3.0 lançadas
3.0 se concentra em atualizar este pacote para o PHP atual. Isso inclui:
- Atendendo aos requisitos mínimos de versão de PHP, Doctrine e outras dependências
- Implementando suporte para os pacotes Doctrine MongoDB e Common mais recentes
- Atualizar o conjunto de testes, adicionar padrões de código e estilo e outras ferramentas de construção necessárias
- Limpando documentação, código, comentários, etc.
Leia o documento de atualização para obter mais informações.
Instalação
composer require gedmo/doctrine-extensions
Atualizando
Extensões
ORM e MongoDB ODM
- Culpável - atualiza strings ou campos de referência ao criar, atualizar e até mesmo alterar propriedades com uma string ou objeto (por exemplo, usuário).
- Loggable - ajuda a rastrear alterações e histórico de objetos, também oferece suporte ao gerenciamento de versões.
- Sluggable - urliza seus campos especificados em um único slug
- Timestampable - atualiza campos de data na criação, atualização e até mesmo alteração de propriedade.
- Traduzível - oferece uma solução muito útil para traduzir registros para diferentes idiomas. Fácil de configurar, mais fácil de usar.
- Árvore - automatiza o processo de manipulação de árvores e adiciona algumas funções específicas de árvores no repositório. ( fechamento , conjunto aninhado ou caminho materializado ) (MongoDB ODM suporta apenas caminho materializado)
Somente ORM
- IpTraceable – herdado de Timestampable, define o endereço IP em vez do carimbo de data/hora
- SoftDeleteable - permite remover registros implicitamente
- Classificável - torna qualquer documento ou entidade classificável
- Carregável - fornece manipulação de upload de arquivos em campos de entidade
Somente ODM do MongoDB
- Referências - suporta vinculação de entidades em documentos e vice-versa
- ReferenceIntegrity - restringe referências de documentos ODM MongoDB
Todas as extensões suportam mapeamento de atributos , XML e anotações (obsoleto). Drivers de mapeamento adicionais podem ser facilmente implementados usando a extensão Mapping para lidar com o mapeamento adicional de metadados.
Compatibilidade de versão
- DBAL:
^3.2
(para todas as extensões) ou ^4.0
(para todas as extensões, exceto Loggable ) - ORM:
^2.14
ou ^3.0
- ODM do MongoDB:
^2.3
Se você estiver configurando o Entity Manager sem uma estrutura, veja o exemplo para evitar problemas como #1310
Mapeamento XML
O mapeamento XML precisa estar em um namespace diferente, o namespace declarado para extensões Doctrine é http://gediminasm.org/schemas/orm/doctrine-extensions-mapping Portanto, o nó raiz agora se parece com isto:
< doctrine-mapping xmlns = " http://doctrine-project.org/schemas/orm/doctrine-mapping "
xmlns : gedmo = " http://gediminasm.org/schemas/orm/doctrine-extensions-mapping " >
...
</ doctrine-mapping >
Os esquemas xsd de mapeamento XML também são versionados e podem ser usados pelo sufixo de versão:
- Versão mais recente - http://gediminasm.org/schemas/orm/doctrine-extensions-mapping
- Versão 2.2.x - http://gediminasm.org/schemas/orm/doctrine-extensions-mapping-2-2
- Versão 2.1.x - http://gediminasm.org/schemas/orm/doctrine-extensions-mapping-2-1
Executando testes
Para configurar e executar os testes, siga estas etapas:
- Instale o Docker e certifique-se de ter
docker compose
- Na raiz do projeto, execute
docker compose up -d
para iniciar contêineres no modo daemon - Entre no contêiner via
docker compose exec php bash
(agora você está no diretório raiz: /var/www
) - Instale as dependências do Composer através
composer install
- Execute os testes:
vendor/bin/phpunit
Executando o exemplo
Para configurar e executar o exemplo, siga estas etapas:
- vá para o diretório raiz das extensões
- baixar compositor
- instalar bibliotecas de desenvolvimento:
composer install
- edite
example/em.php
e configure seu banco de dados em cima do arquivo - execute:
php example/bin/console
ou php example/bin/console
para comandos de console - execute:
php example/bin/console orm:schema-tool:create
para criar o esquema - execute:
php example/bin/console app:print-category-translation-tree
para executar o exemplo para imprimir a árvore de tradução de categorias
Colaboradores
Obrigado a todos que participaram do desenvolvimento dessas grandes extensões do Doctrine!
E especialmente aqueles que criam e mantêm novas extensões:
- Lukas Botsch lbotsch
- Gustavo Adrian confortavelmente entorpecido
- Boussekeyt Jules Gordon Londres
- Kudryashov Konstantin Everzet
- David Buchmann dbu