Por que escolhi o Yii Framework como principal framework PHP?

Cálcio Heavy Metal
PHPRio
Published in
4 min readMar 4, 2017

--

Bom posso começando dizendo com minha relação com com o Yii é uma linha tênue entre gostar muito e odiá-lo. Mas calma caro leitor, essa parte de ódio é muito passageira e nos parágrafos abaixo explicarei isso.

Tudo começou no ano de 2011 em uma empresa que comecei a trabalhar que tinha um site monstro de leilão por centavos (isso era uma febre na época) e a ideia era mudar a plataforma para um framework, e o framework escolhido foi o Yii 1 (na época eu mal conhecia os framewoks e só tinha ouvido falar no Symfony, Cake e CodeIgniter, onde esse último já tinha feito algumas coisas) escolhido pelo meu camarada Paulo Coutinho. Logo de inicio quando ele mostrou o Yii, suas vantagens e como era rápido criar um site com ele, realmente fiquei muito empolgado.

Por não estar muito acostumado com frameworks, com o Pattern MVC e muito menos com o Yii os problemas começaram a surgir, sempre dava alguma treta quando ia implementar algo, as coisas não entravam na minha cabeça, e como fazer determinada coisa que sabia fazer no PHP puro. Não me adaptei ao Yii fiquei puto com ele, mas botei na minha cabeça que ia aprender “aquela joça” de uma forma ou de outra.

Li alguns livros em Inglês (que na época ainda não era algo tão natural assim para mim), vídeos também em inglês, fiz vários exemplos, tentei criar um projeto meu, para ver se a “coisa andava” e ainda assim sempre tinha alguma barreira alguma coisa que para mim era impossível resolver.

O tempo foi passando e precisei me dedicar a outras coisas e me aprofundar mais no CodeIgniter pois na empresa que estava trabalhando já utilizava esse framework que já tinha um sistema também monstro desenvolvido com ele. Deixei o Yii de lado por um bom tempo. Mas sempre com aquela vontade de não deixar essa “joça” de framework me vencer.

Mais um tempo passou e no final de 2014 discutindo sobre frameworks com uns colegas de trabalho falei do Yii de como ele era rápido para desenvolver e etc, vi que tinham lançado Yii 2 mas ainda era o RC. Mas claro que fiquei empolgado de novo. Será que era mais rápido mesmo? Será que estava mais fácil de usar e aprender? Muitos e muitos “Será”??? E voltei a minha saga em estudar o Yii, artigos, vídeos e comunidades como a do Telegram Yii Brasil.

Talvez por já estar adaptado ao MVC, já saber mais sobre OO e outros Patterns achei ele mais fácil de usar e aprender, mas basicamente a forma de trabalho e configuração era a mesma. Algumas vantagens que percebi de imediato em relação ao anterior era que ele já vinha integrado com o Twitter Bootstrap 3 e o jQuery.

Todo esse blá blá blá só pra contar esse longa história. Agora vem o lado prático e técnico.

Toda estrutura física do Yii é muito bem arquitetada, não deixa a desejar em nada em relação a outros frameworks conhecidos do mercado. Utiliza as mais recentes técnicas, paradigmas e patterns conhecidos e versões recentes do PHP inclusive o PHP 7.

Mas aonde está a tal agilidade de desenvolvimento que mencionei? Calma jovem gafanhoto, calma! O Yii tem como base para agilidade seus Widgets e sua ferramenta mágica chama Gii (como já citado em meu primeiro artigo sobre o Yii).

Widgets

Os widgets são componentes utilizados nas views que são customizáveis, integrados com o Bootstrap 3 e jQuery, que podem ser reutilizados em qualquer lugar e também podem ser estendidos para o desenvolvedor criar os seus próprios widgets.

Exemplos dos Widgets criados nas views view.php e index.php respectivamente.

Reparem o uso da class do bootstrap 3 no parâmetro headerOptions. No detailView.php, veja que o atributo date_born tem um parâmetro date, isso faz que a data fique no padrão brasileiro se seu Yii estiver configurado para pt-br. Veja o atributo sex, que está no banco como Zero e Um e foi convertido para male (masculino) e female (feminino).

Ou seja esses widgets são uma mão na roda, pois monta todo o HTML com CSS para você. Lindo não é mesmo?

Gii

O Gii é uma ferramenta de geração de código. Basicamente ele cria seus CRUDs (Create, Read, Update e Delete), com todas as Views contendo seus widgets, helpers, Controllers e Models, ou seja, aquela coisa chata de ficar criando seus métodos de inserir, apagar, atualizar e pesquisar criando telinhas que geralmente são chatas o Yii faz para você com apenas 2 botões (acompanhe o projeto Vitrine).

Mas o Gii não fica só nos CRUDs. Com ele é possível criar módulos, widgets, extensões e Controllers e Forms (de forma independente de um CRUD completo).

Outras facilidades que o Yii provém são: Possibilidade de internacionalização, configuração de rotas, múltiplos banco de dados e etc. Clique aqui para saber mais.

Tem alguma história para contar por que escolheu o Yii como framework principal? Conte sua história nos comentários.

--

--