Apresentação para iniciantes no Framework Yii...
Os slides mostram do que se trata esse framework, dos passos necessários para a sua instalação e das facilidades que ele proporciona à implementação (login, CRUD, JSON).
1. A N D E R S O N L I M A • E D E N R A M O S • J U L I A N E S I LVA
2. TUDO SOBRE O YII
• O que é?
• Pré-requisitos para a instalação.
• Como instalar?
• Como configurar a programação no eclipse?
• Como usar autenticação?
• Como fazer um CRUD um-para-muitos?
• Como criar uma interface RESTful/JSON para o CRUD um-
para-muitos?
3. O QUE É O YII?
• É um FRAMEWORK de alta performance em PHP que utiliza
componentes para o desenvolvimento de pequenas a
grandes aplicações Web.
• Por ser equipado com sofisticadas soluções em CACHING, é
adequado para o desenvolvimento de aplicações com alto
tráfego de dados.
4. O QUE É O YII?
• É totalmente ORIENTADO A OBJETOS.
• Permite a máxima REUTILIZAÇÃO DE CÓDIGOS na
programação Web e pode acelerar significativamente o
processo de desenvolvimento.
• Ele é eficiente, rico em recursos e bem documentado, tendo
sido cuidadosamente projetado.
5. PRÉ-REQUISITOS
• Baixe e instale o Java Platform (JDK).
• Baixe o Eclipse Standard (ou outro de sua preferência).
• Utilizaremos o Eclipse Standard no decorrer deste tutorial. Porém,
teoricamente, em qualquer outra edição do Eclipse, os passos aqui
descritos funcionam igualmente.
• Baixe e instale XAMPP.
• Por garantia de funcionamento, deixe o XAMPP ativado.
• Deixe as opções do Apache e MySQL ativadas também no Painel de
Controle.
6. COMO INSTALAR?
• Baixe o Yii Framework.
• Descompacte a pasta baixada em algum diretório.
• Diretório sugerido: C:, alterando o nome da pasta descom-pactada
para yii.
7. COMO INSTALAR?
• Abra o Prompt de Comando. Provavelmente, ele abrirá no caminho:
C:Users“nome_do_usuário”>.
• Digite e execute o seguinte comando: cd xamppphp.
• Digite e execute o seguinte comando: php C:yiiframework yiic.php
webapp C:xampphtdocstestdrive.
• Será solicitada uma confirmação, digite e execute: yes.
8. COMO INSTALAR?
• Caso o XAMPP e/ou as opções
Apache e MySQL estejam
desativados, ative-os agora.
• Feito isso, automaticamente
aparecerá no cmd algo como a
imagem ao lado.
9. COMO INSTALAR?
• Em algum navegador web de sua preferência, acesse:
http://localhost/testdrive.
• Caso não apareça a tela abaixo, reveja e verifique o que
possivelmente tenha errado nos passos anteriores.
11. YII NO ECLIPSE
• Para configurar o Yii no Eclipse, execute o Eclipse Standard e
acesse: Help/Install New Software...
• No campo “Work with:”, digite: http://download.eclipse.
org/releases/“nome_da_versão_do_eclipse”.
• No momento, estamos utilizando a versão Juno, logo a URL será:
http://download.eclipse.org/releases/juno.
12. YII NO ECLIPSE
• No segundo campo, abaixo daquele, aparecerá várias opções, procure
por “Programming Languages”.
• Expanda esta opção e selecione “PHP Development Tools (PDT)”.
• Após isso, Next/Next/I accept the terms of the license
agreement/Finish.
13. YII NO ECLIPSE
• Aguarde a instalação.
• E, após a instalação, reinicie o Eclipse, apertando em “Yes” na
mensagem que segue.
14. • Quando o Eclipse reiniciar, acesse novamente: Help/ Install
New Software...
• No campo “Work with:”, digite: http://yiiclipse.maziarz.
org/updatesite/"número_da_versão_estável".
• No momento, a versão estável do Juno é a 1.0, logo a URL será:
http://yiiclipse.maziarz.org/updatesite/1.0.
YII NO ECLIPSE
15. YII NO ECLIPSE
• No segundo campo, abaixo daquele, aparecerá a opção “Yiiclipse”.
• Expanda esta opção e selecione “Yiiclipse Core”.
• Após isso, Next/Finish.
16. YII NO ECLIPSE
• Aguarde a instalação. Durante a mesma, aparecerá um alerta de
segurança, aperte “OK” para continuar.
• E, após a instalação, reinicie o Eclipse, apertando em “Yes” na
mensagem que segue.
17. YII NO ECLIPSE
• Para adicionar o Yii a um projeto de PHP já criado no Eclipse, clique
com o botão direito do mouse em cima da pasta do projeto – que
aparecerá na aba “Package Explorer”.
• E vá em: Configure/Toggle Yii support.
19. AUTENTICAÇÃO
• Vá no diretório C:xampphtdocstestdriveprotectedconfig e abra o
arquivo “main.php” (use algum editor de sua preferência para editá-lo,
exemplo: notepad++).
• Depois de aberto o arquivo no editor, procure por:
• E comente este trecho assim:
20. AUTENTICAÇÃO
• Logo abaixo, há um outro trecho comentado:
• Descomente-o desta forma:
• Salve as alterações para que tenha o efeito desejado.
21. AUTENTICAÇÃO
• Feito isso, teremos alterado o nosso banco de dados do modelo SQLite
(que é o padrão) para o MySQL.
• Para armazenar os usuários que vão logar no sistema, crie uma tabela
no banco de dados.
22. AUTENTICAÇÃO
• Vá em C:xampphtdocstestdriveprotectedcomponents e abra o
arquivo “UserIdentity.php” (use algum editor de sua preferência para
editá-lo, exemplo: notepad++).
• Mude a função “authenticate()” de acordo com a imagem:
23. • Após isso, teremos definido um
nome de usuário e a senha
para entrar, em outras
palavras, no login.
• Em algum navegador web de
sua preferência, acesse:
http://localhost/testdrive/index
.php?r=site/login.
• E veja o login pronto!
AUTENTICAÇÃO
24. CRUD
• Para se criar um aplicativo CRUD, é necessário que o banco
de dados do aplicativo já esteja modelado e criado.
• Iremos utilizar um exemplo com 3 modelos: Aluno, Professor
e Turma.
• Onde em uma turma pode haver vários alunos e apenas 1 professor.
• Para criar o banco, abriremos o editor SQL de preferência e
utilizaremos o MySQL Workbench 6.0.
26. ATIVANDO O GII
• O Yii Framework nos fornece uma ferramenta para facilitar a criação
dos modelos e arquivos necessários, chamada Gii.
• Para ativá-la, abriremos o arquivo “main.php” que se encontra em:
“nome_do_projeto”/protected/config/main.php.
• Com o arquivo aberto, iremos tirar o comentário do módulo Gii, que se
encontra em “modules”.
• Altere o campo “password” e escolha uma senha de sua preferência.
28. UTILIZANDO O GII
• Agora para utilizar o Gii, entre na url: “nome_da_aplicação”/
index.php?r=gii
• A seguinte tela irá aparecer:
29. UTILIZANDO O GII
• Agora, podemos criar os
modelos e views referentes ao
nosso banco de dados.
• Primeiro, iremos criar os
modelos. Para isso, aperte em
“Model Generator”.
30. CRIANDO OS MODELOS
• Para criar o modelo, basta
digitar o nome da tabela do
banco de dados correspon-
dente ao objeto no campo
“Table Name”, e clicar em
“Preview”.
31. CRIANDO OS MODELOS
• A seguinte tela aparecerá, mostrando os arquivos que serão
criados. Para confirmar, clique em “Generate”.
32. CRIANDO O CRUD
• Agora com o modelo criado,
podemos criar o CRUD para
ele.
• Para isso, clique em “CRUD
Generator”.
33. CRIANDO O CRUD
• Para criar o CRUD, digite o
nome do modelo no campo
“Model Class” e clique em
“Preview”.
34. CRIANDO O CRUD
• A tela abaixo irá aparecer, com os arquivos que serão criados para o
CRUD. Para confirmar, clique em “Generate”.
• Agora repita todo o processo para os outros modelos do banco.
35. OBSERVAÇÕES
• Nota-se que os arquivos podem ter 3 status diferentes:
• New: Irá criar um novo arquivo. Deixe checado para confirmar a
criação do arquivo.
• Overwrite: Significa que já existe um arquivo com o mesmo nome,
porém com códigos diferentes. Deixe checado para substituir o
arquivo por um novo. CUIDADO, isso fará com que o arquivo já
existente seja perdido.
• Unchanged: Significa que já existe um arquivo com o mesmo nome
e é idêntico ao arquivo que seria criado.
36. VISUALIZANDO O CRUD
• Para visualizar as páginas do CRUD, entre com a url:
“site_do_aplicativo”/index.php?r=“nome_do_modelo”.
• Exemplo: /teste/index.php?r=turma.
Todos os objetos do modelo "Turma“ são
mostrados aqui.
Pode-se ver todos os atributos de cada
objeto.
Clicando em sua chave primária, podemos
visualizar individualmente o objeto.
37. VISUALIZANDO UM OBJETO
• Ao clicar no ID, veremos a tela abaixo.
• Ao lado, temos todas as operações relacionadas ao objeto.
39. SELECT DE CAMPOS RELACIONADOS
• Observe que no campo “Professor”, há uma lista de
professores para selecionar, onde Professor é também um
objeto.
• Para mostrar campos relacionados como lista, temos que
modificar o view da página.
• Neste caso, modifica-se o arquivo “nome_do_projeto”/
protected/views/turma/_form.php.
• E, neste arquivos, localiza-se a classe “row” correspondente ao
campo “professor_id”.
41. SELECT DE CAMPOS RELACIONADOS
• Note que todos os campos são mostrados como um textField.
Portanto, neste caso, iremos colocar um dropDownList,
populado com os objetos do modelo Professor.
• Primeiro, iremos criar uma variável contendo todos os objetos
Professor: <?php $list = CHtml::listData(Professor:: model()-
>findAll(), 'id', 'nome'); ?>
42. SELECT DE CAMPOS RELACIONADOS
• Note que para referenciar um objeto tipo Professor com o Yii,
utiliza-se o mesmo como se fosse uma classe.
• O método findAll() retorna todos os objetos do modelo
Professor.
• Com isso, cria-se um dropDownList utilizando os dados da
variável $list: <?php echo $form->dropDownList ($model,
'professor_id', $list, array('empty'=>'(Selecione o professor)'));
?>
44. RESTFUL/JSON
• REST = Transferência de Estado Representativo.
• É um estilo arquitetural usado no projeto de aplicações da Web que
contam com recursos nomeados (URL,URI,URN) e utiliza mais
profundamente o protocolo HTTP.
• RESTful é uma forma de acesso a dados semelhante aos
webservices, mas que obedecem a arquitetura REST.
• Usa HTTP e responde em um formato conhecido (JSON).
• Aceita GET, POST, UPDATE, DELETE como métodos HTTP.
• Possui uma URI em forma de API, em conjunto com os métodos
HTTP.
45. UTILIZANDO RESTFUL/JSON
• Para se criar uma interface utilizando Restful e Json, iremos
configurar as url’s primeiramente.
• Abra o arquivo “main.php” que se encontra em
“nome_do_projeto”/protected/config/main.php.
• Iremos adicionar alguns padrões Url em nosso “UrlManager”,
para podermos definir as ações que serão realizadas ao
entrar em certa Url.
47. UTILIZANDO RESTFUL/JSON
• Para exemplo, vamos definir as ações apenas para o modelo
“Aluno”.
• Veja que criamos uma url para cada atividade do CRUD.
Acessaremos essas url’s com o prefixo “/api/” na url da
aplicação.
• Iremos agora criar o controlador que terá as ações dessas
url’s.
48. UTILIZANDO RESTFUL/JSON
• Crie um arquivo chamado “ApiController.php” na pasta
“nome_do_projeto”/protected/controllers/ conforme abaixo:
49. DEFININDO AS AÇÕES
• Agora iremos definir cada ação. Iniciaremos com “actionList”: