Vamos entender um pouco mais?
Primeiramente, o que é um ORM?
ORM (Object-relational mapping) é uma camada intermediária entre um banco de dados relacional e objetos. De um lado, temos as tabelas e seus relacionamentos, de outro os objetos de uma linguagem OO.O que um ORM faz?
- Mapeia dados do DB para Objetos
- Mapeia relacionamentos
- Lida com conversão de tipos
Quais problemas ele resolve?
- Agiliza o desenvolvimento
- Diminui a quantidade de código
- Ajuda a user os poder dos objetos
- Faz parte de um bom design de software
Doctrine
Uma característica do Doctrine é o baixo nível de configuração que é necessário para começar um projeto. O Doctrine pode gerar classes de objetos a partir de um banco de dados existente, e o desenvolvedor pode então especificar as relações e adicionar funcionalidade personalizada para as classes geradas. Não há necessidade de gerar ou manter complexas XML de banco de dados, como pode ser visto em muitos outros frameworks.
Outra característica fundamental do Doctrine é a capacidade de, opcionalmente, escrever consultas em um banco de dados OO (orientada a objetos ) dialeto SQL chamado DQL (Doctrine Query Language) inspirado do Hibernate HQL . Como alternativa, a classe QueryBuilder (Doctrine_Query no 1.x Doctrine) permite construir consultas através de uma interface fluente . Essas interfaces fornecem aos desenvolvedores alternativas poderosas para o SQL manter a flexibilidade e ainda permitir a troca de dados back-ends, sem necessidade de qualquer duplicação de código.
Outras características interessantes do Doctrine são:
- Suporte para ganchos (métodos que podem validar ou modificar a entrada e saída de dados) e ouvintes de eventos para estruturar a lógica de negócios relacionados;
- Um framework de cache, fazendo uso de vários backends, como memcached , SQLite ou APC ;
- Migrações de banco de dados;
- Uma função de “compilação”. Combinar vários arquivos PHP do framework em um, para evitar o impacto no desempenho normalmente incorridos, incluindo os muitos arquivos PHP de um framework;
- E muitas outras.
Nenhum comentário:
Postar um comentário