PHP

Conheça os principais projetos do Doctrine

O Doctrine é um conjunto de projetos PHP voltados principalmente para trabalhar com persistência de dados. Neste post vamos falar como esses projetos surgiram e qual a utilidade de cada um.

há 4 anos 3 meses

Formação Desenvolvedor PHP
Conheça a formação em detalhes

Ao falar em Doctrine é normal pensarmos diretamente no ORM, porém o Doctrine é um conjunto de projetos em PHP voltados para trabalhar com banco de dados e outros recursos.

Projetos do Doctrine

O objetivo do doctrine inicialmente era construir um projeto único para garantir o acesso a dados de forma eficiente assim como em outras linguagens de programação, também no PHP. Com o tempo o projeto foi sendo melhorado e nesses processos os desenvolvedores começaram a observar que poderia separar o projeto em pequenos projetos que pudessem ser reutilizados, tanto dentro do próprio Doctrine quanto em outros projetos PHP, mesmo que a aplicação não utilize o Doctrine ORM em si.

Doctrine ORM - Fundamentos
Curso Doctrine ORM - Fundamentos
Conhecer o curso

Baseado nessa filosofia hoje o Doctrine conta com mais de 15 projetos. Os principais são:

DBAL

É uma camada de abstração de acesso a dados construída sobre o PDO. Conta com recursos importantes que permitem executar queries parametrizadas, construir consultas através do query builder, além de ferramentas para ler e alterar a estrutura do banco de dados.

ORM

O Doctrine ORM é um Object Relational Mapper que implementa o padrão Data Mapper. Seu principal objetivo é facilitar o mapeamento entre o banco de dados relacional e o modelo orientado a objetos, diminuindo a complexidade do acesso aos dados.

Commom

Agrupa recursos em comum que são compartilhados por diferentes projetos do Doctrine. O objetivo principal dele é evitar que trechos de códigos com recursos comuns tenham de ser duplicados dentro dos diversos projetos do Doctrine.

Migrations

Permite a definição da estrutura do banco de dados através de arquivos dentro da aplicação, facilitando a criação do banco de dados em novos ambientes e também o versionamento da estrutura do banco.

Annotations

No PHP é comum usarmos um padrão chamado DocBlock para documentarmos nossas aplicações. As annotations nada mais são do que informações que definimos dentro desses blocos de comentários, mas que são lidas pela aplicação, ao invés de ignoradas como os demais comentários. O projeto annotation consistem em um parser (leitor) que consegue obter essas informações de forma simples.

PHP Avançado
Curso PHP Avançado
Conhecer o curso

Collections

Projeto consiste em uma biblioteca que adiciona funcionalidades bastante úteis para o tratamento de conjuntos de informações. Podemos pensar de forma muito simplista nas collections como sendo funcionalidades adicionais sobre os arrays nativos do PHP.

Cache

Projeto muito utilizado na comunidade PHP para realização de cache. Por padrão possui drivers que permitem utilizá-lo com diferentes meios de armazenamento, como, redis, memcache e outros.

Event Manager

É um gerenciador de eventos usado em vários projetos do próprio Doctrine e também da comunidade em geral.

MongoDB Abstraction Layer

O projeto consiste em uma camada adicional de abstração que adiciona funcionalidades a extensão PHP Mongo disponível no PECL.

Mongo ODM

O Mongo ODM (Object Document Mapper) é um projeto da mesma categoria que o ORM, com a diferença que ele faz o mapeamento entre o modelo de documentos do banco de dados NoSQL Mongo para o modelo de orientado a objetos.

Outros projetos

O Doctrine ainda conta com outros projetos fora os especificados neste post. A lista completa pode ser acessada no site do Doctrine: https://www.doctrine-project.org/projects.html

Considerações finais

O doctrine conta com projetos de alta qualidade que podem ser usados em qualquer aplicação PHP, mesmo que não utilize os projetos principais como DBAL e ORM. Assim como conhecer os principais componentes do Symfony pode te ajudar na hora da escolha das bibliotecas, os projetos do Doctrine também são extremamente importantes para seu repertório.

Desenvolvedor Symfony Full-Stack
Formação Desenvolvedor Symfony Full-Stack
Conhecer a formação

Autor(a) do artigo

Elton Fonseca
Elton Fonseca

Professor e desenvolvedor. Formado em análise e desenvolvimento de sistema, pós graduado em engenharia e arquitetura de software. É autor de cursos em diversos temas, como, desenvolvimento back-end, cloud computing e CMSs. Nas horas vagas adora estudar sobre o mercado financeiro, cozinhar e brincar com pequeno Daniel. @eltonfonsecadev

Todos os artigos

Artigos relacionados Ver todos