20.11.2014 Views

O Guia Definitivo do Yii 1.1

O Guia Definitivo do Yii 1.1

O Guia Definitivo do Yii 1.1

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!