SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
High-performance component-based PHP framework
    for developing large-scale Web applications.
Angéllica Cardozo
Trabalha como desenvolvedora PHP na TargetSO.

Concluindo graduação pelo CEFET.

Trabalhando com desenvolvimento desde 2007.
Por que o Yii?
•   Arquitetura MVC
•   Rápido aprendizado.
•
    Melhor organização do código
•   Componentes e helpers voltados para web 2.0
•   Scaffolding
•   Integrado com plugins do Jquery
•   Melhor reaproveitamento de tarefas
•   Temas e tradução
•   Comunidade sempre ativa
Por que o Yii?
Agenda
•   O que é o Yii?
•   Características
•
    Conceitos fundamentais
•   Acesso ao banco de dados
•   Scaffolding
•   Autenticação e Controle de Acesso
•   Temas e tradução
O que é o Yii?
Yii é um componente de alta performance
desenvolvido em PHP voltado para o
desenvolvimento em larga escala de aplicações web.

Permite o máximo de reusabilidade acelerando
significantemente o processo de desenvolvimento.

Yii é a referência para easy, efficient and extensible.
Características
 •
         Padrão MVC
 •
         Mapeamento do Banco (DAO / AR)
 •
         Integração com JQuery
 •       Widgets integrados com Jquery
 •       Internacionalização e localização
 •       Segurança
     •     (prevenção cross-site scripting (XSS) ,
     •
          prevenção cross-site request forgery (CSRF) ,
     •
          prevenção de adulteração cookie, etc)
 •       Autenticação e Controle de Acesso
 •       Temas e tradução
Conceitos Fundamentais
Estrutura de diretórios
Conceitos Fundamentais
Criando uma aplicação
 O Yii nos permite criar rapidamente uma aplicação base,
 fazendo uso de sua ferramenta yiic através da linha de
 comando.

 Yiic oferece suporte a criação do CRUD de sua aplicação e
 gera automaticamente o relacionamento entre suas
 tabelas.
Conceitos Fundamentais
Fluxo de execução
Conceitos Fundamentais
Aplicação
 Recebe a solicitação do usuário e a envia para um
 controlador adequado para o posterior processamento.

 Serve também como o lugar central para o processamento
 de configurações a nível da aplicação.

 Por padrão, a aplicação é uma instancia de
 CWebApplication. Para personalizá-la é utilizado um
 arquivo de configuração .
Conceitos Fundamentais
Banco de Dados
O suporte a banco de dados é construído em cima da
extensão PDO (PHP Data Objects).

Representando uma tabela em termos de uma classe. Yii
AR elimina a tarefa repetitiva de escrever instruções SQL
que lidam principalmente com operações CRUD (criar, ler,
atualizar e excluir).

Você pode usar suas próprias bibliotecas de Banco de
Dados na sua aplicação
Acesso ao Banco de Dados
CDbConnection administra o acesso; como estende
CApplicationComponent, pode ser usado como um
componente da aplicação.
Scaffolding
Como não poderia faltar, o Yii também possui uma
ferramenta para o processo de scaffolding denominada
Yiic.

O processo é executado através da linha de comando.

O Yiic já gera os models com os seus respectivos
relacionamentos.
Autenticação e Controle de Acesso
O núcleo do Yii para autenticação é o componente de
aplicação de usuários o qual é um objeto que implementa
as funcionalidades de autenticação através da interface
IWebUser.
Autenticação e Controle de Acesso
O Yiic possui um filtro de controle de acesso que checa
previamente se um usuário possui autorização para
executar a ação do controller.

A configuração pode ser feita pelo nome de usuário, IP e
por atributos adicionados a sessão do usuário através do
componente User.

O filtro é denominado AccessControl.
Autenticação e Controle de Acesso
Definimos as configurações de controle de acesso no
Controller.
Autenticação e Controle de Acesso
O Yii nos permite mesclar o filtro AcessControl com o
controle de acesso RBAC.

Através da opção expression fornecida pelo filtro
AccessControl, podemos autorizar a execução de uma
ação somente aos usuários que detenham o perfil de
Administrador no sistema.
Autenticação e Controle de Acesso
Implementando RBAC




Associando ao AccessControl
Temas e Tradução
Com os temas podemos alterar as perspectivas de
visualização das páginas e seus elementos.

O gerenciamento de temas pelo Yii é feito através de um
componente denominado ThemeManager.

Cada tema é representado como um diretório constituído
por views, layouts, e arquivos como imagens, CSS,
JavaScript e etc.
Temas e Tradução
Configuramos o componente na aplicação.




E podemos trabalhar o componente durante a execução
das ações.
Temas e Tradução
Com o componente de tradução do Yii podemos
disponibilizar para o usuário os arquivos de visão,
formatação de data, hora, meses, dias da semana e de
números de uma forma geral, todos traduzidos para sua
linguagem.
Temas e Tradução
As pastas devem ser nomeadas de acordo com a
respectiva linguagem.


                          A tradução será efetuada
                          automaticamente de acordo
                          com o parâmetro passado
                          para o atributo language da
                          aplicação.
Obrigada
           Dúvidas?
           @AngellicaC

Mais conteúdo relacionado

Destaque

Agilizando o desenvolvimento com j query
Agilizando o desenvolvimento com j queryAgilizando o desenvolvimento com j query
Agilizando o desenvolvimento com j queryPHPRio
 
Agilizando o desenvolvimento com jquery
Agilizando o desenvolvimento com jqueryAgilizando o desenvolvimento com jquery
Agilizando o desenvolvimento com jqueryPHPRio
 
Agilizando o desenvolvimento com j query
Agilizando o desenvolvimento com j queryAgilizando o desenvolvimento com j query
Agilizando o desenvolvimento com j queryPHPRio
 
The Presentation Come-Back Kid
The Presentation Come-Back KidThe Presentation Come-Back Kid
The Presentation Come-Back KidEthos3
 
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika AldabaLightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldabaux singapore
 
SEO: Getting Personal
SEO: Getting PersonalSEO: Getting Personal
SEO: Getting PersonalKirsty Hulse
 

Destaque (8)

Agilizando o desenvolvimento com j query
Agilizando o desenvolvimento com j queryAgilizando o desenvolvimento com j query
Agilizando o desenvolvimento com j query
 
Agilizando o desenvolvimento com jquery
Agilizando o desenvolvimento com jqueryAgilizando o desenvolvimento com jquery
Agilizando o desenvolvimento com jquery
 
Aula 8 php
Aula 8 phpAula 8 php
Aula 8 php
 
Agilizando o desenvolvimento com j query
Agilizando o desenvolvimento com j queryAgilizando o desenvolvimento com j query
Agilizando o desenvolvimento com j query
 
The Presentation Come-Back Kid
The Presentation Come-Back KidThe Presentation Come-Back Kid
The Presentation Come-Back Kid
 
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika AldabaLightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
 
SEO: Getting Personal
SEO: Getting PersonalSEO: Getting Personal
SEO: Getting Personal
 
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job? Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
 

Semelhante a YII - Web Programming Framework

JHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãosJHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãosThiago Soares
 
CDI -Contextos e Dependências
CDI -Contextos e DependênciasCDI -Contextos e Dependências
CDI -Contextos e DependênciasWende Mendes
 
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...Adriano Teixeira de Souza
 
Code Igniter & Zend Framework Uma UniãO De Sucesso
Code Igniter & Zend Framework   Uma UniãO De SucessoCode Igniter & Zend Framework   Uma UniãO De Sucesso
Code Igniter & Zend Framework Uma UniãO De SucessoJose Wilker
 
Analise frameworks php
Analise frameworks phpAnalise frameworks php
Analise frameworks phpIgor Moura
 
Code Igniter & Zend Framework - Uma união de sucesso
Code Igniter & Zend Framework - Uma união de sucessoCode Igniter & Zend Framework - Uma união de sucesso
Code Igniter & Zend Framework - Uma união de sucessoJose Wilker
 
Webcast MSDN - Enterprise Library
Webcast MSDN - Enterprise LibraryWebcast MSDN - Enterprise Library
Webcast MSDN - Enterprise LibraryLuciano Condé
 
CDI Extensions e DeltaSpike
CDI Extensions e DeltaSpikeCDI Extensions e DeltaSpike
CDI Extensions e DeltaSpikeRafael Benevides
 
F1502 p iman3-pt_v3.8_l
F1502 p iman3-pt_v3.8_lF1502 p iman3-pt_v3.8_l
F1502 p iman3-pt_v3.8_lconfidencial
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev IntroduçãoMarcio Marinho
 
Projeto Indiana
Projeto IndianaProjeto Indiana
Projeto Indianahellequin
 
Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPSérgio Vilar
 
Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKRyan Padilha
 

Semelhante a YII - Web Programming Framework (20)

JHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãosJHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãos
 
CDI -Contextos e Dependências
CDI -Contextos e DependênciasCDI -Contextos e Dependências
CDI -Contextos e Dependências
 
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
 
Palestra yii2
Palestra yii2Palestra yii2
Palestra yii2
 
Palestra
PalestraPalestra
Palestra
 
Code Igniter & Zend Framework Uma UniãO De Sucesso
Code Igniter & Zend Framework   Uma UniãO De SucessoCode Igniter & Zend Framework   Uma UniãO De Sucesso
Code Igniter & Zend Framework Uma UniãO De Sucesso
 
Analise frameworks php
Analise frameworks phpAnalise frameworks php
Analise frameworks php
 
Code Igniter & Zend Framework - Uma união de sucesso
Code Igniter & Zend Framework - Uma união de sucessoCode Igniter & Zend Framework - Uma união de sucesso
Code Igniter & Zend Framework - Uma união de sucesso
 
Compartilhe facilmente sua API no Azure
Compartilhe facilmente sua API no Azure Compartilhe facilmente sua API no Azure
Compartilhe facilmente sua API no Azure
 
Webcast MSDN - Enterprise Library
Webcast MSDN - Enterprise LibraryWebcast MSDN - Enterprise Library
Webcast MSDN - Enterprise Library
 
CDI Extensions e DeltaSpike
CDI Extensions e DeltaSpikeCDI Extensions e DeltaSpike
CDI Extensions e DeltaSpike
 
F1502 p iman3-pt_v3.8_l
F1502 p iman3-pt_v3.8_lF1502 p iman3-pt_v3.8_l
F1502 p iman3-pt_v3.8_l
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev Introdução
 
Mini curso JBC
Mini curso JBCMini curso JBC
Mini curso JBC
 
Projeto Indiana
Projeto IndianaProjeto Indiana
Projeto Indiana
 
DevChamps 2016
DevChamps 2016DevChamps 2016
DevChamps 2016
 
Beehive - Overview
Beehive - OverviewBeehive - Overview
Beehive - Overview
 
Desenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHPDesenvolvimento Web com CakePHP
Desenvolvimento Web com CakePHP
 
Introdução a jsf
Introdução a jsfIntrodução a jsf
Introdução a jsf
 
Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDK
 

YII - Web Programming Framework

  • 1. High-performance component-based PHP framework for developing large-scale Web applications.
  • 2. Angéllica Cardozo Trabalha como desenvolvedora PHP na TargetSO. Concluindo graduação pelo CEFET. Trabalhando com desenvolvimento desde 2007.
  • 3. Por que o Yii? • Arquitetura MVC • Rápido aprendizado. • Melhor organização do código • Componentes e helpers voltados para web 2.0 • Scaffolding • Integrado com plugins do Jquery • Melhor reaproveitamento de tarefas • Temas e tradução • Comunidade sempre ativa
  • 4. Por que o Yii?
  • 5. Agenda • O que é o Yii? • Características • Conceitos fundamentais • Acesso ao banco de dados • Scaffolding • Autenticação e Controle de Acesso • Temas e tradução
  • 6. O que é o Yii? Yii é um componente de alta performance desenvolvido em PHP voltado para o desenvolvimento em larga escala de aplicações web. Permite o máximo de reusabilidade acelerando significantemente o processo de desenvolvimento. Yii é a referência para easy, efficient and extensible.
  • 7. Características • Padrão MVC • Mapeamento do Banco (DAO / AR) • Integração com JQuery • Widgets integrados com Jquery • Internacionalização e localização • Segurança • (prevenção cross-site scripting (XSS) , • prevenção cross-site request forgery (CSRF) , • prevenção de adulteração cookie, etc) • Autenticação e Controle de Acesso • Temas e tradução
  • 9. Conceitos Fundamentais Criando uma aplicação O Yii nos permite criar rapidamente uma aplicação base, fazendo uso de sua ferramenta yiic através da linha de comando. Yiic oferece suporte a criação do CRUD de sua aplicação e gera automaticamente o relacionamento entre suas tabelas.
  • 11. Conceitos Fundamentais Aplicação Recebe a solicitação do usuário e a envia para um controlador adequado para o posterior processamento. Serve também como o lugar central para o processamento de configurações a nível da aplicação. Por padrão, a aplicação é uma instancia de CWebApplication. Para personalizá-la é utilizado um arquivo de configuração .
  • 12. Conceitos Fundamentais Banco de Dados O suporte a banco de dados é construído em cima da extensão PDO (PHP Data Objects). Representando uma tabela em termos de uma classe. Yii AR elimina a tarefa repetitiva de escrever instruções SQL que lidam principalmente com operações CRUD (criar, ler, atualizar e excluir). Você pode usar suas próprias bibliotecas de Banco de Dados na sua aplicação
  • 13. Acesso ao Banco de Dados CDbConnection administra o acesso; como estende CApplicationComponent, pode ser usado como um componente da aplicação.
  • 14. Scaffolding Como não poderia faltar, o Yii também possui uma ferramenta para o processo de scaffolding denominada Yiic. O processo é executado através da linha de comando. O Yiic já gera os models com os seus respectivos relacionamentos.
  • 15. Autenticação e Controle de Acesso O núcleo do Yii para autenticação é o componente de aplicação de usuários o qual é um objeto que implementa as funcionalidades de autenticação através da interface IWebUser.
  • 16. Autenticação e Controle de Acesso O Yiic possui um filtro de controle de acesso que checa previamente se um usuário possui autorização para executar a ação do controller. A configuração pode ser feita pelo nome de usuário, IP e por atributos adicionados a sessão do usuário através do componente User. O filtro é denominado AccessControl.
  • 17. Autenticação e Controle de Acesso Definimos as configurações de controle de acesso no Controller.
  • 18. Autenticação e Controle de Acesso O Yii nos permite mesclar o filtro AcessControl com o controle de acesso RBAC. Através da opção expression fornecida pelo filtro AccessControl, podemos autorizar a execução de uma ação somente aos usuários que detenham o perfil de Administrador no sistema.
  • 19. Autenticação e Controle de Acesso Implementando RBAC Associando ao AccessControl
  • 20. Temas e Tradução Com os temas podemos alterar as perspectivas de visualização das páginas e seus elementos. O gerenciamento de temas pelo Yii é feito através de um componente denominado ThemeManager. Cada tema é representado como um diretório constituído por views, layouts, e arquivos como imagens, CSS, JavaScript e etc.
  • 21. Temas e Tradução Configuramos o componente na aplicação. E podemos trabalhar o componente durante a execução das ações.
  • 22. Temas e Tradução Com o componente de tradução do Yii podemos disponibilizar para o usuário os arquivos de visão, formatação de data, hora, meses, dias da semana e de números de uma forma geral, todos traduzidos para sua linguagem.
  • 23. Temas e Tradução As pastas devem ser nomeadas de acordo com a respectiva linguagem. A tradução será efetuada automaticamente de acordo com o parâmetro passado para o atributo language da aplicação.
  • 24. Obrigada Dúvidas? @AngellicaC