Tableless

Busca Menu

Yii Framework: um framework PHP profissional, rápido e seguro!

Seja o primeiro a comentar por

Todo desenvolvedor ao longo de sua carreira, em algum momento, faz o uso de frameworks para complementar seus projetos, reduzir tempo de produção e prover na maioria dos casos, um código limpo, profissional e de fácil manutenção.

Hoje lhes apresento o Yii Framework, um framework Open-Source PHP com alto poder de desempenho e escalabilidade.
Chegou a sua versão histórica Yii 1.0 em 2008 e, desde então, sua popularidade entre os desenvolvedores tem crescido cada vez mais.

O Framework possui um excelente suporte a MVC, DAO / Active Record, I18N (Internationalization) / L10N (Localization), Cache, Autenticação e Controle de acesso (RBAC), Testes unitários, Gerador de códigos automáticos, Skinning and Theming, Jquery / solicitações Ajax integrado aos widgets do Yii, Web Services (WSDL) e muito mais.

Sua documentação é bem rica e possui um fluxo expressivo de desenvolvedores em seu fórum.
Eis suas principais características:

Rápido

A arquitetura do Yii permite que o mesmo carregue somente o necessário para aplicação no presente momento e, em conjunto com o suporte a cache (APC), consegue um RPS (Requisição por Segundo) bastante interessante.

 

PHP Framework Performance Comparison

No site oficial do Yii possui uma descrição mais detalhada sobre seu desempenho. Vale a pena dar uma olhada!

Seguro

Um framework com um excelente desempenho não é nada se sua segurança é fraca, não é mesmo?

O Yii por padrão faz o tratamento/validações de entrada e saída de dados, oferece suporte a ataques SQL Injection, Cross-site scripting (XSS), CSRF (Cross-Site Request Forgery), Cookie Attack e entre outros.

Profissional

Yii segue o padrão MVC em sua estrutura, garantindo a separação entre camadas lógicas e camadas de apresentação do projeto a ser desenvolvido. Ele auxilia o desenvolvedor a ter um código mais limpo e reutilizável (DRY – Don’t repeat yourself) sem grandes esforços, supre a elaboração de sites simples bem como aplicações extremamente complexas, sendo necessário se preocupar apenas com tarefas específicas do projeto.

Outro fator importante é que ele aceita muito bem integrações com códigos de terceiros, como por exemplo, PEAR, Codeigniter, Zend Framework…

Enfim, o Yii é uma excelente opção para quem esta buscando um framework intuitivo, flexível e profissional. Segundo o site oficial, “Yii helps Web developers build complex applications and deliver them on-time.” traduzindo seria “Yii ajuda os desenvolvedores a construir aplicações complexas e entregá-las no prazo.”.

 

INSTALAÇÃO

Para instalar o Yii, faça o download do framework em sua versão estável no site oficial, descompacte os arquivos em um diretório acessível à Web ou em seu servidor local. O servidor deverá ter no mínimo a versão 5.1 do PHP instalada ou posterior.

Você poderá realizar o download da última versão do framework usando o repositório do GitHub através da URL:

git@github.com:yiisoft/yii.git

ou via SVN usando:

svn checkout https://github.com/yiisoft/yii/trunk/ yii

Após descompactar os arquivos, devemos verificar se o servidor, bem como sua configuração, atende os requisitos básicos para que o Yii funcione corretamente. Para isso, o Yii preparou um verificador de requisitos que emite o resultado final sobre as condições do ambiente em que o mesmo está instalado.

Você poderá acessar este verificador da seguinte forma:

Partindo o princípio que o Yii foi instalado em um servidor local, em seu navegador web, acesse a seguinte URL:

http://127.0.0.1/yii/requirements/

Ao acessar essa URL, o verificador de requisitos entrará em ação verificando se o servidor possui as configurações necessárias para que o Yii funcione adequadamente.

 

CRIANDO SUA PRIMEIRA APLICAÇÃO

Com o servidor devidamente configurado e validado pelo Yii, iremos criar nossa primeira aplicação.

O Yii possui um gerador de código muito poderoso que permite realizarmos algumas tarefas de maneira automatizada. Criaremos uma aplicação completa com controle de acesso e sem escrever uma linha de código PHP. Veja como:

Através da linha de comando iremos executar o arquivo “yiic.php”. Para quem está utilizando MAC OS, Unix ou Linux, execute a seguinte comando:

php caminho/para_a/pasta/do/yii/framework/yiic.php webapp caminho/para_a/nova/pasta/hello_world

Onde “/hello_world” seria o nome da pasta na qual irá conter os arquivos de nossa primeira aplicação web.

Certo! Mas eu uso Windows? E agora?

Se você tentar executar este comando no prompt do Windows, o mesmo não irá reconhece-lo corretamente. Antes, devemos realizar algumas configurações necessárias para que o mesmo funcione.

Devemos adicionar à variável de ambiente do Windows, o caminho de instalação do PHP.

Por exemplo, caso tenha instalado o WampServer como seu ambiente de desenvolvimento, o caminho para a pasta de instalação do PHP seria semelhante ao seguinte diretório:

C:\wamp\bin\php\php5.3.13

Caso o ambiente de desenvolvimento seja o Xampp por exemplo, o caminho para a pasta seria semelhante a:

C:\xampp\php

O importante é encontrar o caminho correto até a pasta de instalação do PHP.

No Windows, em “Propriedades do Sistema” e com a aba “Avançado” ativa, clique no botão “Variáveis de Ambiente…”

Propriedades do Sistema

Na área “Variáveis do sistema”, editaremos a variável “Path”:

Variáveis do sistema

Adicione o caminho de instalação do PHP seguido de um ponto e vírgula “;” no final e confirme a edição. Veja:

Variáveis do sistema

Com esta alteração, basicamente estamos informando ao Windows onde ele irá localizar o arquivo php.exe. Confirme a edição, e abra o prompt de comando do Windows.

Caminhe até a pasta “framework” localizada dentro do diretório de instalação do Yii utilizando o comando “cd”:

cd caminho\para_a\pasta\do\yii\framework

Após estar dentro do diretório “framework”, digite a seguinte linha de comando no prompt do Windows:

yiic webapp caminho\para_a\nova\pasta\hello_world

Após a execução desta linha de comando, o Yii irá criar uma aplicação web completa na pasta “/hello_world” que poderá ser acessada em seu navegador web, por exemplo:

http://127.0.0.1/hello_world/

Veja como ficou a aplicação:

Resultado final

ESTRUTURA

Vamos agora analisar mais a fundo a estrutura de pastas da aplicação recentemente gerada:

hello_world/
   index.php                 Script de entrada da aplicação Web
   index-test.php            Script de entrada para os testes funcionais
   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
      yiic.php               Script PHP de linha de comando yiic 
      commands/              Contém comandos 'yiic' customizados
         shell/              Contém comandos 'yiic shell' customizados
      components/            Contém componentes reutilizáveis do usuário
         Controller.php      A classe padrão para todos os controles
         UserIdentity.php    A classe 'UserIdentity' usada nas autenticações
      config/                Contém arquivos de configurações
         console.php         Configuração da aplicação console
         main.php            Configuração da aplicação Web
         text.php            Configuração para os testes funcionais
      controllers/           Contém arquivos das classes de controle
         SiteController.php  Classes de controle padrão
      data/                  Contém exemplos de banco de dados
         schema.mysql.sql    Esquemas de BD com o banco de amostra em MySQL
         schema.sqlite.sql   Esquemas de BD com o banco de amostra em SQLite
         testdrive.db        Arquivo do banco de dados de amostra do SQLite
      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
      tests/                 Contém scripts para os testes
      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 páginas
            column1.php      O layout para páginas com coluna única
            column2.php      O layout para páginas com duas colunas
         site/               Contém arquivos de visão para o controle 'site'
            pages/           Contém páginas "estática"
               about.php     A visão para a página "about"
            contact.php      Visão para a ação 'contact'
            error.php        Visão para a ação 'error' (exibindo erros externos)
            index.php        Visão para a ação 'index' 
            login.php        Visão para a ação 'login' 

Como podem notar, sua estrutura se assemelha bastante com outros frameworks MVC atuais.
Recomendo que explorem bem esta aplicação, pois ela demonstra o uso correto do framework.

Deem uma olhada no Controller “SiteController.php” localizado em “/hello_world/protected/controllers/”, através dele é possível entender o funcionamento completo da aplicação do início ao fim.

Para finalizar, deixo duas recomendações de livros que valem a pena a leitura:

Web Application Development with Yii and PHP

Yii Application Development Cookbook

Publicado no dia