segunda-feira, 11 de janeiro de 2016

PHP e banco de dados com PDO

O que é o PDO?

PDO (PHP Data Objects) é um módulo de PHP montado sob o paradigma Orientado a Objetos e cujo objetivo é prover uma padronização da forma com que o PHP se comunica com um banco de dados relacional. Este módulo surgiu a partir da versão 5 de PHP. PDO, portanto, é uma interface que define um conjunto de classes e a assinatura dos métodos de comunicação com uma base de dados.

Por que utilizar o PDO?

Antes da chegada do PDO, a linguagem PHP oferecia suporte à comunicação com diferentes modelos de SGBD através de módulos específicos. A maioria deles provia uma biblioteca de funções e utilizava um resource para representar a conexão e outro para representar um resultset (o resultado de uma consulta). As operações eram feitas sobre as variáveis de resource.
Cada driver implementava suas operações conforme imaginavam ser mais adequados. Embora alguns deles tivessem um funcionamento semelhante, a ordem dos parâmetros nem sempre era a mesma e podia causar uma certa confusão entre programadores.
Ainda hoje muitas pessoas consideram o uso do PDO uma opção, analisando a possibilidade de um determinado projeto mudar de banco, utilizando o PDO somente se essa possibilidade existir. O grande perigo nessa análise superficial é que nem sempre no início de um projeto temos essa visão e se tiver que mudar não adianta lamentar, então em cima disso particularmente recomendamos a utilização deste recurso, principalmente se o projeto necessitar trabalhar com mais de um tipo de banco.

Como conectar a um banco MySQL usando PDO

Testando a conexão

Incluindo dados


Links e referências:

O que é Doctrine 2?

O Doctrine é um mapeador objeto-relacional (ORM) que provê um meio transparente de persistir objetos PHP em bases de dados relacionais. A implementação de Doctrine está construída sobre uma camada de abstração de banco de dados.
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

logo-doctrineO projeto Doctrine é um conjunto de bibliotecas PHP focada principalmente no fornecimento de persistência de serviços e funcionalidades relacionadas.
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.
doctrine_2
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.

Links e referências

Testo extraído de http://www.schoolofnet.com/