SlideShare ist ein Scribd-Unternehmen logo
1 von 58
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
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?
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.
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.
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.
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.
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.
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.
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.
YII INSTALADO... AÊ! O/
AGORA, COMO CONFIGURAR O YII
NO ECLIPSE? :O
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.
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.
YII NO ECLIPSE
• Aguarde a instalação.
• E, após a instalação, reinicie o Eclipse, apertando em “Yes” na
mensagem que segue.
• 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
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.
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.
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.
ENFIM, VAMOS CRIAR
OS MÓDULOS COM O YII... O/*O
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:
AUTENTICAÇÃO
• Logo abaixo, há um outro trecho comentado:
• Descomente-o desta forma:
• Salve as alterações para que tenha o efeito desejado.
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.
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:
• 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
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.
CRUD
• Então, executamos a seguinte sql:
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.
ATIVANDO O GII
UTILIZANDO O GII
• Agora para utilizar o Gii, entre na url: “nome_da_aplicação”/
index.php?r=gii
• A seguinte tela irá aparecer:
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”.
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”.
CRIANDO OS MODELOS
• A seguinte tela aparecerá, mostrando os arquivos que serão
criados. Para confirmar, clique em “Generate”.
CRIANDO O CRUD
• Agora com o modelo criado,
podemos criar o CRUD para
ele.
• Para isso, clique em “CRUD
Generator”.
CRIANDO O CRUD
• Para criar o CRUD, digite o
nome do modelo no campo
“Model Class” e clique em
“Preview”.
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.
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.
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.
VISUALIZANDO UM OBJETO
• Ao clicar no ID, veremos a tela abaixo.
• Ao lado, temos todas as operações relacionadas ao objeto.
CRIANDO UM OBJETO
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”.
SELECT DE CAMPOS RELACIONADOS
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'); ?>
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)'));
?>
RESTFUL? JSON? O.O
SEM PÂNICO!
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.
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.
UTILIZANDO RESTFUL/JSON
• Iremos adicionar as seguintes url’s:
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.
UTILIZANDO RESTFUL/JSON
• Crie um arquivo chamado “ApiController.php” na pasta
“nome_do_projeto”/protected/controllers/ conforme abaixo:
DEFININDO AS AÇÕES
• Agora iremos definir cada ação. Iniciaremos com “actionList”:
DEFININDO AS AÇÕES
• Seguido pela “actionView”:
DEFININDO AS AÇÕES
• Pela “actionCreate”:
DEFININDO AS AÇÕES
• Pela “actionUpdate”:
DEFININDO AS AÇÕES
• E, finalmente, pela “actionDelete”:
DEFININDO AS AÇÕES
• E, finalmente, pela “actionDelete”:
DEFININDO AS AÇÕES
• Agora, definiremos a resposta. Neste caso, com um simples html,
mostrando o resultado das ações:
TESTANDO
• Por fim, podemos fazer um teste, entrando na url:
DÚVIDAS???
NÃO SEJA TÃO AMIGO...
FAÇA PERGUNTAS SE QUISER! ;D
AGORA É POR SUA CONTA...
BOA SORTE! =D

Weitere ähnliche Inhalte

Was ist angesagt?

Construindo aplicações web java com netbeans
Construindo aplicações web java com netbeansConstruindo aplicações web java com netbeans
Construindo aplicações web java com netbeans
Sliedesharessbarbosa
 
Java, NetBeans e Orientação a Objetos
Java, NetBeans e Orientação a ObjetosJava, NetBeans e Orientação a Objetos
Java, NetBeans e Orientação a Objetos
João Longo
 

Was ist angesagt? (20)

Cakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPCakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHP
 
Python 06
Python 06Python 06
Python 06
 
Construindo aplicações web java com netbeans
Construindo aplicações web java com netbeansConstruindo aplicações web java com netbeans
Construindo aplicações web java com netbeans
 
Desenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e ServletsDesenvolvimento web em java com JSP e Servlets
Desenvolvimento web em java com JSP e Servlets
 
Introdução à MEAN Stack
Introdução à MEAN StackIntrodução à MEAN Stack
Introdução à MEAN Stack
 
Analise frameworks php
Analise frameworks phpAnalise frameworks php
Analise frameworks php
 
A arquitetura modular do Java 9
A arquitetura modular do Java 9A arquitetura modular do Java 9
A arquitetura modular do Java 9
 
Curso de Java (Parte 5)
Curso de Java (Parte 5)Curso de Java (Parte 5)
Curso de Java (Parte 5)
 
Net beans 7.4 Funções e Atalhos
Net beans 7.4 Funções e AtalhosNet beans 7.4 Funções e Atalhos
Net beans 7.4 Funções e Atalhos
 
Apresentação maven
Apresentação mavenApresentação maven
Apresentação maven
 
Maven em 10 minutos
Maven em 10 minutosMaven em 10 minutos
Maven em 10 minutos
 
Java, NetBeans e Orientação a Objetos
Java, NetBeans e Orientação a ObjetosJava, NetBeans e Orientação a Objetos
Java, NetBeans e Orientação a Objetos
 
Introdução Play framework
Introdução Play frameworkIntrodução Play framework
Introdução Play framework
 
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendAnálise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
 
JavaFX 1.2
JavaFX 1.2JavaFX 1.2
JavaFX 1.2
 
Python 08
Python 08Python 08
Python 08
 
Minicurso Java
Minicurso JavaMinicurso Java
Minicurso Java
 
Introdução a Grails: Um framework veloz e poderoso
Introdução a Grails: Um framework veloz e poderosoIntrodução a Grails: Um framework veloz e poderoso
Introdução a Grails: Um framework veloz e poderoso
 
01 introducao ao java
01   introducao ao java01   introducao ao java
01 introducao ao java
 
Conhecendo o Zend Framework
Conhecendo o Zend FrameworkConhecendo o Zend Framework
Conhecendo o Zend Framework
 

Andere mochten auch

Desenvolvimento de um protótipo de um sistema de informaçãO web para cadastro...
Desenvolvimento de um protótipo de um sistema de informaçãO web para cadastro...Desenvolvimento de um protótipo de um sistema de informaçãO web para cadastro...
Desenvolvimento de um protótipo de um sistema de informaçãO web para cadastro...
Filipe Aguilar Santana
 

Andere mochten auch (20)

Arquitetura ARM - Raspberry Pi
Arquitetura ARM - Raspberry PiArquitetura ARM - Raspberry Pi
Arquitetura ARM - Raspberry Pi
 
O Mítico Homem-Mês
O Mítico Homem-MêsO Mítico Homem-Mês
O Mítico Homem-Mês
 
Introducción a Yii2
Introducción a Yii2Introducción a Yii2
Introducción a Yii2
 
Palestra yii2
Palestra yii2Palestra yii2
Palestra yii2
 
Padrão de Projeto - Decorator
Padrão de Projeto - DecoratorPadrão de Projeto - Decorator
Padrão de Projeto - Decorator
 
Yii2
Yii2Yii2
Yii2
 
DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII
DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YIIDETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII
DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII
 
Yii framework 2 exemplo de uma aplicação-parte2
Yii framework 2 exemplo de uma aplicação-parte2Yii framework 2 exemplo de uma aplicação-parte2
Yii framework 2 exemplo de uma aplicação-parte2
 
Segurança cibernética e software livre - Lourival Araujo - TchêLinux Uruguaiana
Segurança cibernética e software livre - Lourival Araujo - TchêLinux UruguaianaSegurança cibernética e software livre - Lourival Araujo - TchêLinux Uruguaiana
Segurança cibernética e software livre - Lourival Araujo - TchêLinux Uruguaiana
 
Rafael Garcia - Yii Framework, principais características e em ação
Rafael Garcia - Yii Framework, principais características e em açãoRafael Garcia - Yii Framework, principais características e em ação
Rafael Garcia - Yii Framework, principais características e em ação
 
Yii framework 2 exemplo de uma aplicação-parte1
Yii framework 2 exemplo de uma aplicação-parte1Yii framework 2 exemplo de uma aplicação-parte1
Yii framework 2 exemplo de uma aplicação-parte1
 
O uso do PostgreSQL e PostGIS no cadastro geocodificado de acidentes de trânsito
O uso do PostgreSQL e PostGIS no cadastro geocodificado de acidentes de trânsitoO uso do PostgreSQL e PostGIS no cadastro geocodificado de acidentes de trânsito
O uso do PostgreSQL e PostGIS no cadastro geocodificado de acidentes de trânsito
 
Framework Yii
Framework YiiFramework Yii
Framework Yii
 
Desenvolvimento de um protótipo de um sistema de informaçãO web para cadastro...
Desenvolvimento de um protótipo de um sistema de informaçãO web para cadastro...Desenvolvimento de um protótipo de um sistema de informaçãO web para cadastro...
Desenvolvimento de um protótipo de um sistema de informaçãO web para cadastro...
 
6. SCRUM e Kanban
6. SCRUM e Kanban6. SCRUM e Kanban
6. SCRUM e Kanban
 
Entendendo Scrum, Kanban e Programação Extrema
Entendendo Scrum, Kanban e Programação ExtremaEntendendo Scrum, Kanban e Programação Extrema
Entendendo Scrum, Kanban e Programação Extrema
 
Introdução ao PostGIS
Introdução ao PostGISIntrodução ao PostGIS
Introdução ao PostGIS
 
Exemplo / Modelo de um Plano de Negócios (Template Business Case)
Exemplo / Modelo de um Plano de Negócios (Template Business Case)Exemplo / Modelo de um Plano de Negócios (Template Business Case)
Exemplo / Modelo de um Plano de Negócios (Template Business Case)
 
Gerenciamento Ágil de Projetos
Gerenciamento Ágil de ProjetosGerenciamento Ágil de Projetos
Gerenciamento Ágil de Projetos
 
The Canvas of Business Case (Modelo de Caso de Negócio)
The Canvas of Business Case (Modelo de Caso de Negócio)The Canvas of Business Case (Modelo de Caso de Negócio)
The Canvas of Business Case (Modelo de Caso de Negócio)
 

Ähnlich wie Framework Yii

Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHP
Rangel Javier
 
Intro ao eclipse
Intro ao eclipseIntro ao eclipse
Intro ao eclipse
Lucas Cruz
 
Iniciando com o_zend_framework
Iniciando com o_zend_frameworkIniciando com o_zend_framework
Iniciando com o_zend_framework
Milton Rodrigues
 
CakePHP - Configurando o ambiente de desenvolvimento no Windows
CakePHP - Configurando o ambiente de desenvolvimento no WindowsCakePHP - Configurando o ambiente de desenvolvimento no Windows
CakePHP - Configurando o ambiente de desenvolvimento no Windows
Emerson Soares
 

Ähnlich wie Framework Yii (20)

Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHP
 
Aula02 eclipse quem_es_tu
Aula02 eclipse quem_es_tuAula02 eclipse quem_es_tu
Aula02 eclipse quem_es_tu
 
Intro ao eclipse
Intro ao eclipseIntro ao eclipse
Intro ao eclipse
 
Maven: Introdução
Maven: IntroduçãoMaven: Introdução
Maven: Introdução
 
Palestra
PalestraPalestra
Palestra
 
CakePHP
CakePHPCakePHP
CakePHP
 
Iniciando com o_zend_framework
Iniciando com o_zend_frameworkIniciando com o_zend_framework
Iniciando com o_zend_framework
 
Cake Php
Cake PhpCake Php
Cake Php
 
Mongo Db - PHP Day Workshop
Mongo Db - PHP Day WorkshopMongo Db - PHP Day Workshop
Mongo Db - PHP Day Workshop
 
De 0 a DevOps
De 0 a DevOpsDe 0 a DevOps
De 0 a DevOps
 
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
 
CakePHP - Configurando o ambiente de desenvolvimento no Windows
CakePHP - Configurando o ambiente de desenvolvimento no WindowsCakePHP - Configurando o ambiente de desenvolvimento no Windows
CakePHP - Configurando o ambiente de desenvolvimento no Windows
 
Minicurso Yii2
Minicurso Yii2Minicurso Yii2
Minicurso Yii2
 
Treinamento Básico de Django
Treinamento Básico de DjangoTreinamento Básico de Django
Treinamento Básico de Django
 
Tutorial codeigniter
Tutorial codeigniterTutorial codeigniter
Tutorial codeigniter
 
Workshop Django Framework - 30/10/2018
Workshop Django Framework - 30/10/2018Workshop Django Framework - 30/10/2018
Workshop Django Framework - 30/10/2018
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHP
 
Configurando aplicações em ambiente RedHat OpenShift através do Eclipse
Configurando aplicações em ambiente RedHat OpenShift através do EclipseConfigurando aplicações em ambiente RedHat OpenShift através do Eclipse
Configurando aplicações em ambiente RedHat OpenShift através do Eclipse
 
Mean Stack
Mean StackMean Stack
Mean Stack
 
Minicurso Play Framework - Tão fácil que nem parece Java
Minicurso Play Framework - Tão fácil que nem parece JavaMinicurso Play Framework - Tão fácil que nem parece Java
Minicurso Play Framework - Tão fácil que nem parece Java
 

Kürzlich hochgeladen

Kürzlich hochgeladen (9)

ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 

Framework Yii

  • 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.
  • 10. YII INSTALADO... AÊ! O/ AGORA, COMO CONFIGURAR O YII NO ECLIPSE? :O
  • 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.
  • 18. ENFIM, VAMOS CRIAR OS MÓDULOS COM O YII... O/*O
  • 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.
  • 25. CRUD • Então, executamos a seguinte sql:
  • 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”.
  • 40. SELECT DE CAMPOS RELACIONADOS
  • 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.
  • 46. UTILIZANDO RESTFUL/JSON • Iremos adicionar as seguintes url’s:
  • 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”:
  • 50. DEFININDO AS AÇÕES • Seguido pela “actionView”:
  • 51. DEFININDO AS AÇÕES • Pela “actionCreate”:
  • 52. DEFININDO AS AÇÕES • Pela “actionUpdate”:
  • 53. DEFININDO AS AÇÕES • E, finalmente, pela “actionDelete”:
  • 54. DEFININDO AS AÇÕES • E, finalmente, pela “actionDelete”:
  • 55. DEFININDO AS AÇÕES • Agora, definiremos a resposta. Neste caso, com um simples html, mostrando o resultado das ações:
  • 56. TESTANDO • Por fim, podemos fazer um teste, entrando na url:
  • 57. DÚVIDAS??? NÃO SEJA TÃO AMIGO... FAÇA PERGUNTAS SE QUISER! ;D
  • 58. AGORA É POR SUA CONTA... BOA SORTE! =D