Criando a primeira aplicação Yii
Para ter uma experiência inicial com o Yii, descrevemos nesta seção como criar nossa
primeira aplicação em Yii. Iremos utilizar a poderosa ferramenta yiic que pode ser
usada para automatizar a criação de código para várias finalidades. Assumiremos que
YiiRoot é o diretório onde o Yii está instalado e WebRoot é o diretório raíz
do servidor Web.
Execute o yiic pela linha de comando, como no exemplo a seguir:
Nota: Quando executamos o
yiicno Mac OS, Linux ou Unix, devemos alterar a permissão do arquivoyiicpara torna-lo executável.Como forma alternativa, você pode executa-lo da seguinte maneira:
Esse comando irá criar o esquele de uma aplicação Yii, no diretório WebRoot/testdrive.
A aplicação tem um estrutura de diretórios que é a necessária para a maioria das
aplicações feitas no Yii.
Sem ter escrito uma única linha de código, ja podemos testar nossa primeira aplicação Yii, acessando a seguinte URL:
Como podemos ver, a aplicação tem três páginas: a página inicial, a página de contato e a página de login. A página principal mostra algumas informações sobre a aplicação, como o login do usuário ativo, a página de contato exibe um formulário de contato que os usuários podem preencher e enviar suas mensagens, a página de login permite que os usuários se autentiquem antes de acessar o conteúdo privilegiado. Veja as imagens a seguir para mais detalhes:
Página Principal

Página de Contato

Página de Contato com erros de entrada

Página de Contato com emissão bem sucedida

Página de Login

A listagem seguinte mostra a estrutura de diretórios da nossa aplicação. Por favor, veja as Convenções para obter explicações detalhadas sobre essa estrutura.
Conectando ao Banco de Dados
A maioria das aplicações Web são auxiliadas com o uso de banco de dados.
Nossa aplicação de test-drive não é uma exceção. Para usar banco de dados,
primeiro precisamos dizer à aplicação como se conectar a ele. Isto é feito
alterando o arquivo de configuração WebRoot/testdrive/protected/config/main.php,
como mostrado abaixo:
Acima, nós adicionamos uma entrada para db ao array components, que instrui a
aplicação para se conectar ao banco de dados SQLite WebRoot/testdrive/protected/data/source.db
quando for preciso.
Nota: Para utilizar os recursos de banco de dados do Yii, precisamos ativar a extensão PDO do PHP e a extensão de driver PDO específico. Para a aplicação test-drive, as extensões
php_pdoephp_pdo_sqlitedeverão estar habilitadas.
Para este fim, precisamos de preparar uma base de dados SQLite, para que a configuração feita anteriormente seja eficaz. Usando alguma ferramenta de administração do SQLite, podemos criar um banco de dados com o seguinte esquema:
Nota: Se estiver utilizando um banco de dados MySQL, você deve substituir o
AUTOINCREMENT, utilizado no código acima, porAUTO_INCREMENT.
Por simplicidade, criamos somente uma única tabela: User no nosso banco de dados.
O arquivo do banco de dados SQLite foi salvo em WebRoot/testdrive/protected/data/source.db.
Observe que tanto o arquivo quanto o diretório devem ter permissão de leitura do servidor Web,
como requerido pelo SQLite.
Implementando operações do tipo CRUD
Agora começa a parte divertida. Iremos implementar operações CRUD (create, read,
update and delete) quer realizará inserções, leituras, edições e deleções na
tabela User que acabamos de criar. Este tipo de operação é frequetemente necessário
em aplicações reais.
Em vez da dificuldade na escrita de um código real, iremos utilizar a poderosa ferramenta
yiic para gerar automaticamente o código. Este processo é também conhecido como scaffolding.
Abra a linha de comando e execute os comandos listados a seguir:
Acima, utilizamos o comando yiic shell para interagir com nossa
aplicação esqueleto. Na linha de comando, podemos digitar dois subcomandos:
model User e crud User. O primeiro gera a classe modelo para a tabela
User, enquanto que o segundo comando lê a classe modelo User e gera
o código necessário para as operações do tipo CRUD.
Nota: Você poderá encontrar erros como "...could not find driver" ou "...driver não encontrado", mesmo que o verificador de requisitos mostre que você já tem o PDO ativado e o driver PDO correspondente ao Banco de Dados. Caso isso ocorra, você deve tentar rodar a ferramenta
yiicdo seguinte modo:onde
caminho/para/php.inirepresenta o arquivo PHP.ini correto.
Podemos ver nossa primeira aplicação pela seguinte URL:
Essa página irá mostrar uma lista de entradas de usuários da tabela User.
Se tabela estiver vazia, nada será exibido.
Clique no link New User da página. Caso não esteja autenticado seremos
levados à página de login. Uma vez logado, será exibido um formulário
de entrada que permite adicionar um novo usuário. Preencha o formulário e
clique sobre o botão Create. Se houver qualquer erro de entrada, um
erro será mostrado, o que nos impede de salvar os dados. Voltando à lista
de usuários, iremos ver o recém adicionado usuário aparecendo na lista.
Repita as etapas acima para adicionar novos usuários. Repare que a tabela de usuários será automaticamente paginada, caso existam muitos usuários a serem exibidos em uma página.
Se logarmos como administrador utilizando o login/senha: admin/admin, veremos
a página de administração de usuários pela seguinte URL:
Será mostrada uma tabela de usuários. Podemos clicar nas células do cabeçalho para ordenar as colunas correspondentes. E como na página de listagem dos usuários, a página de administração dos usuários também realiza a paginação quando existem muitos usuários a serem exibidos.
Todas essas incríveis funcionalidades foram criadas sem escrever uma única linha de código!
Página de administração dos usuários

Página de criação de um novo usuário
