O Guia Definitivo do Yii 1.1
O Guia Definitivo do Yii 1.1
O Guia Definitivo do Yii 1.1
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Trabalhan<strong>do</strong> com Banco de Da<strong>do</strong>s<br />
Visão Geral<br />
O framework <strong>Yii</strong> fornece um poderoso suporte para programação com Banco de Da<strong>do</strong>s.<br />
Construí<strong>do</strong> em cima da extensão PDO (PHP Data Objects). Os objetos de acesso a<br />
da<strong>do</strong>s <strong>do</strong> <strong>Yii</strong> (DAO), permitem o acesso a diferentes sistemas de gerenciamento de Banco<br />
de Da<strong>do</strong>s (SGBD) em uma única relação uniforme. As aplicações desenvolvidas usan<strong>do</strong><br />
<strong>Yii</strong> DAO podem facilmente ser alteradas para usar um SGBD diferente sem a necessidade<br />
de modificar o código de acesso aos da<strong>do</strong>s. A Active Record (AR) <strong>do</strong> <strong>Yii</strong>, é implementada<br />
como uma abordagem amplamente a<strong>do</strong>tada, a ORM (Object-Relational Mapping),<br />
simplifican<strong>do</strong> ainda mais a programação com Banco de Da<strong>do</strong>s. Representan<strong>do</strong> uma<br />
tabela em termos de uma classe. <strong>Yii</strong> AR elimina a tarefa repetitiva de escrever instruções<br />
SQL que lidam principalmente com operações CRUD (criar, ler, atualizar e excluir).<br />
Embora <strong>Yii</strong> DAO e AR possam tratar quase to<strong>do</strong>s os objetos de da<strong>do</strong>s relacionais, você<br />
ainda pode usar suas próprias bibliotecas de Banco de Da<strong>do</strong>s na sua aplicação <strong>Yii</strong>. De<br />
fato, o framework <strong>Yii</strong> é cuida<strong>do</strong>samente projeta<strong>do</strong> para ser utiliza<strong>do</strong> em conjunto com<br />
bibliotecas de terceiros.<br />
Data Access Objects (DAO)<br />
Data Access Objects (DAO, Objetos de Acesso a Da<strong>do</strong>s), fornecem uma API genérica<br />
para acessar da<strong>do</strong>s em diferentes tipos de bancos de da<strong>do</strong>s. Como resulta<strong>do</strong>, pode-se<br />
alterar o sistema de banco de da<strong>do</strong>s sem haver a necessidade de alterar o código que<br />
utiliza DAO para fazer o acesso.<br />
O DAO <strong>do</strong> <strong>Yii</strong> é feito utilizan<strong>do</strong> a extensão PHP Data Objects (PDO), que fornece um<br />
acesso de da<strong>do</strong>s unifica<strong>do</strong> para muitos SGBD populares, tais como MySQL e<br />
PostgreSQL. Por esse motivo, para utilizar o DAO no <strong>Yii</strong>, a extensão PDO deve estar<br />
instalada, bem como o driver PDO específico para o banco de da<strong>do</strong>s utiliza<strong>do</strong> (por<br />
exemplo, PDO_MYSQL).<br />
O DAO no <strong>Yii</strong>, consiste, basicamente, das quatro classes seguinte:<br />
1. CDbConnection: representa uma conexão com o banco de da<strong>do</strong>s.<br />
2. CDbCommand: representa uma instrução SQL a ser executada no banco de<br />
da<strong>do</strong>s.<br />
3. CDbDataReader: representa um conjunto de registros retorna<strong>do</strong>s, navegável<br />
apenas para frente.<br />
4. CDbTransaction: representa uma transação (transaction) no banco de da<strong>do</strong>s.<br />
A seguir, apresentaremos a utilização <strong>do</strong> DAO no <strong>Yii</strong> em diferente cenários.<br />
Estabelecen<strong>do</strong> uma Conexão com o Banco de Da<strong>do</strong>s<br />
Para estabelecer uma conexão com o banco de da<strong>do</strong>s, criamos uma instância de<br />
CDbConnection e a ativamos. É necessário o nome da fonte de da<strong>do</strong>s (data source<br />
name, DSN) para conectar-se ao banco. Também podem ser necessários o nome de