O documento fornece instruções para configurar um aplicativo web utilizando o framework Yii, incluindo: 1) instalação do framework e geração da estrutura do aplicativo, 2) configuração do banco de dados, 3) geração do código MVC para as tabelas, 4) adição de menu e campos ao grid, 5) configuração de labels e campos obrigatórios. Anexos fornecem detalhes adicionais sobre a estrutura do aplicativo, menu, campos do grid.
1. Tutorial Yii Framework
Yii Framework
http://www.yiiframework.com
O Guia Definitivo para o Yii
http://www.yiiframework.com/doc/guide/pt/index
Yii Class Reference
http://www.yiiframework.com/doc/api/1.0.10
Yii Class Reference - CHtml - Componentes de Interface
http://www.yiiframework.com/doc/api/CHtml
Índice
1. Instalação........................................................................................................................................2
2. Geração da Estrutura da Aplicação ................................................................................................2
3. Banco de Dados..............................................................................................................................2
4. Geração do MVC............................................................................................................................2
5. Menu...............................................................................................................................................4
6. Extensões........................................................................................................................................4
7. Labels dos Campos.........................................................................................................................4
8. Campos do Grid..............................................................................................................................5
9. Campos Obrigatórios......................................................................................................................5
Anexo I – Estrutura da Aplicação..........................................................................................................7
Anexo II – Menu multi-nível.................................................................................................................8
Anexo III – Campos do Grid .................................................................................................................9
2. 1. Instalação
Execute o download do Yii Framework no link:
http://www.yiiframework.com/download
Copie o arquivo ZIP para o diretório “C:WWW”, descompacte e mude o nome do diretório para
”yii”.
2. Geração da Estrutura da Aplicação
Entre no “Prompt de comando” e execute os comandos abaixo para criar a estrutura da aplicação:
CD www
MD servico
CD servico
php5php wwwyiiframeworkyiic webapp wwwservico
Para testar digite a URL abaixo no browser:
http://localhost/www/servico/index.php
3. Banco de Dados
Crie um banco de dados chamado “servico” no MySQL com o SQL disponível no site.
Altere o arquivo abaixo com a configuração do MySQL mostrada:
wwwservicoprotectedconfigmain.php
'db'=>array(
'connectionString'=>'mysql:host=localhost;dbname=servico',
'username'=>'root',
'password'=>'mysql',
),
4. Geração do MVC
Entre no “Prompt de comando” e execute os comandos abaixo para criar a estrutura da aplicação:
php5php wwwyiiframeworkyiic shell
model TABELA, para gerar o MODEL de uma tabela
crud TABELA, para gerar o VIEW/CONTROLLER de uma tabela
3. Abaixo é mostrada a saída dos comandos de geração:
Yii Interactive Tool v1.0 (based on Yii v1.0.10)
Please type 'help' for help. Type 'exit' to quit.
>> model cidade
generate cidade.php
The following model classes are successfully generated:
cidade
If you have a 'db' database connection, you can test these models now
with:
$model=cidade::model()->find();
print_r($model);
>> crud cidade
generate CidadeController.php
mkdir E:/php/servico/protected/views/cidade
generate create.php
generate update.php
generate list.php
generate show.php
generate admin.php
generate _form.php
Crud 'cidade' has been successfully created. You may access it via:
http://hostname/path/to/index.php?r=cidade
>>
As tabelas do banco de dados cujo código deve ser gerado são:
cidade
cliente
os
osobservacao
osservico
servico
Para testar digite a URL abaixo no browser:
http://localhost/www/servico/index.php?r=cidade
4. 5. Menu
O arquivo abaixo contém a estrutura principal da tela, inclusive o menu, compartilhado por todas as
VIEWs, e deve ser alterado conforme o código mostrado:
wwwservicoprotectedviewslayoutsmain.php
$this->widget('application.components.MainMenu',array(
'items'=>array(
array('label'=>'Home', 'url'=>array('/site/index')),
array('label'=>'Contact', 'url'=>array('/site/contact')),
array('label'=>'Cidades', 'url'=>array('/cidade/admin')),
array('label'=>'Login', 'url'=>array('/site/login'),
'visible'=>Yii::app()->user->isGuest),
array('label'=>'Logout', 'url'=>array('/site/logout'),
'visible'=>!Yii::app()->user->isGuest)
),
));
6. Extensões
O menu padrão do Yii permite apenas 1 único nível de opções. Para resolver este problemas
podemos instalar uma extensão que implementa um menu multi-nível. Basta executar o download
do link abaixo, descompactar no diretório indicado e alterar o código do script anterior para o código
mostrado no Anexo II:
http://www.yiiframework.com/extension/menu
wwwservicoprotectedextensionsmenu
7. Labels dos Campos
As descrições dos campos do banco de dados são definidos no MODEL da tabela, através da função
“attributeLabels”:
wwwservicoprotectedmodelscidade.php
public function attributeLabels()
{
return array(
'CHAVE' => 'Chave',
'NOME' => 'Nome da Cidade',
'UF' => 'UF',
'DATE_TIME' => 'Date Time',
);
5. 8. Campos do Grid
Os campos do grid exibido no VIEW de cada tabela estão no arquivo abaixo podendo ser alterado
para exibir ícones ao invés de links bem como remover campos, como mostrado no Anexo III:
wwwservicoprotectedviewscidadeadmin.php
Além disso é necessário alterar a classe “dataGrid” do CSS como mostrado no código abaixo:
wwwservicocssmain.css
table.dataGrid
{
background: white;
border-collapse: collapse;
/* width: 100%; */
}
O diretório abaixo vai receber as imagens GIF disponíveis no site:
wwwservicothemesclassicimages
O tema “classic” deve ser configurado no arquivo de configuração:
wwwservicoprotectedviewslayoutsmain.php
'theme'=>'classic'
9. Campos Obrigatórios e Date_Time
O Yii não gera campos para digitação da chave-primária nas telas de inclusão. Assim é necessário
definir estes campos nas tabelas CIDADE e SERVICO, apenas para as inclusões. O campo
DATE_TIME pode ser removido das telas. Além disso é necessário incluir o campo CHAVE na lista
de campos a serem gravados e atribuir um valor ao campo DATE_TIME usado para gravar a data da
última alteração no registro, como mostrado abaixo:
7. Anexo I – Estrutura da Aplicação
testdrive/
index.php Script de entrada da aplicação Web
assets/ Contém arquivos de recurso publicados
css/ Contém arquivos CSS
images/ Contém arquivos de imagem
themes/ Contém temas da aplicação
protected/ Contém arquivos protegidos da aplicação
yiic Script de linha de comando yiic
yiic.bat Script de linha de comando yiic para o Windows
commands/ Contém comandos 'yiic' customizados
shell/ Contém comandos 'yiic shell' customizados
components/ Contém componentes reutilizáveis do usuário
MainMenu.php A classe widget 'MainMenu' (Menu Principal)
Identity.php A classe 'Identity' usada nas autenticações
views/ Contém arquivos de visão dos widgets
mainMenu.php O arquivo de visão do widget 'MainMenu'
config/ Contém arquivos de configurações
console.php Configuração da aplicação console
main.php Configuração da aplicação Web
controllers/ Contém arquivos das classes de controle
SiteController.php Classes de controle padrão
extensions/ Contém extensões de terceiros
messages/ Contém mensagens traduzidas
models/ Contém arquivos das classes de modelo
LoginForm.php Modelo do formulário para a ação 'login'
ContactForm.php Modelo do formulário para a ação 'contact'
runtime/ Contém arquivos gerados temporariamente
views/ Contém arquivos de visão dos controles e layouts
layouts/ Contém arquivos de visão do layout
main.php O layout padrão para todas as visões
site/ Contém arquivos de visão para o controle 'site'
contact.php Visão para a ação 'contact'
index.php Visão para a ação 'index'
login.php Visão para a ação 'login'
system/ Contém arquivos de visão do sistema