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.

Below is an example showing how to drop an index:<br />

// DROP INDEX `idx_username` ON `tbl_user`<br />

dropIndex('idx_username', 'tbl_user')<br />

Active Record<br />

Apesar <strong>do</strong> DAO <strong>do</strong> <strong>Yii</strong> ser capaz de cuidar, praticamente, de qualquer tarefa relacionada a<br />

banco de da<strong>do</strong>s, há uma grande chance de que, ainda, gastaríamos 90% <strong>do</strong> nosso tempo<br />

escreven<strong>do</strong> instruções SQL para efetuar as operações de CRUD (create (criar), read (ler),<br />

update (atualizar) e delete (excluir)). Além disso, nosso código é mais difícil de manter<br />

quan<strong>do</strong> temos instruções SQL misturadas com ele. Para resolver esses problemas,<br />

podemos utilizar Active Record (Registro Ativo).<br />

Active Record (AR) é uma popular técnica de Mapeamento Objeto-Relacional (Object-<br />

Relational Mapping, ORM). Cada classe AR representa uma tabela (ou uma view) <strong>do</strong><br />

banco de da<strong>do</strong>s, cujos campos são representa<strong>do</strong>s por propriedades na classe AR. Uma<br />

instância de uma AR representa um único registro de uma tabela. As operações de CRUD<br />

são implementadas como méto<strong>do</strong>s na classe AR. Como resulta<strong>do</strong>, podemos acessar<br />

nossos da<strong>do</strong>s de uma maneira orientada a objetos. Por exemplo, podemos fazer como no<br />

código a seguir para inserir um novo registro na tabela Post:<br />

$post=new Post;<br />

$post->title='post de exemplo';<br />

$post->content='conteú<strong>do</strong> <strong>do</strong> post';<br />

$post->save();<br />

A seguir, descreveremos como configurar AR e como utiliza-lo para executar operações<br />

de CRUD. Na próxima seção, iremos mostrar como utilizar AR para trabalhar com<br />

relacionamentos. Para simplificar, utilizaremos a seguinte tabela para os exemplos desta<br />

seção. Note que, se você estiver utilizan<strong>do</strong> um banco de da<strong>do</strong>s MySQL, você deve<br />

substituir o AUTOINCREMENT por AUTO_INCREMENT na instrução abaixo:<br />

CREATE TABLE Post (<br />

id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,<br />

title VARCHAR(128) NOT NULL,<br />

content TEXT NOT NULL,<br />

createTime INTEGER NOT NULL<br />

);<br />

Nota: A intenção <strong>do</strong> AR não é resolver todas tarefas relacionadas a banco de da<strong>do</strong>s.<br />

Ele é melhor utiliza<strong>do</strong> para modelar tabelas <strong>do</strong> banco para estruturas no PHP e<br />

executar consultas que não envolvem instruções SQL complexas. O DAO <strong>do</strong> <strong>Yii</strong> é o<br />

recomenda<strong>do</strong> para esses cenários mais complexos.

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

Saved successfully!

Ooh no, something went wrong!