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.
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:
ou via SVN usando:
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:
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:
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:
Caso o ambiente de desenvolvimento seja o Xampp por exemplo, o caminho para a pasta seria semelhante a:
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…”
Na área “Variáveis do sistema”, editaremos a variável “Path”:
Adicione o caminho de instalação do PHP seguido de um ponto e vírgula “;” no final e confirme a edição. Veja:
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”:
Após estar dentro do diretório “framework”, digite a seguinte linha de comando no prompt do Windows:
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:
Veja como ficou a aplicação:
ESTRUTURA
Vamos agora analisar mais a fundo a estrutura de pastas da aplicação recentemente gerada:
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