O início
Eu conheci o Yii praticamente ao acaso.
Nunca trabalhei com frameworks de PHP antes, mas fui solicitado a dar apoio a uma equipe que estava decidindo qual framework utilizar. A cada dia ele apresentavam um FW pra galera. Fui só num dos dias, justamente no dia…do Yii!
Ok, não o escolhi por ser o unico FW que vi, mas porque já vinha desenvolvendo um mini-framework particular e, bom…o Yii era toda a UTOPIA que eu imaginava criar e mais um bom bocado que nem havia imaginado, KKKKKKK 
Fiquei absolutamente maravilhado com o que vi: um FW robusto, mas que nao te "prendia" a um modelo e permitia extensões de maneira simples e, claro, web 2.0.
Meus problemas
Aí foi o início de varios meses de testes e muuuuita dor de cabeça.
-
Problemas para instalar no Wamp (foi uns 3 dias só nisso)
-
Eu uso Oracle. Yii não dava suporte ao Oracle. Entrei em desespero profundo!!
. Em um framework desconhecido, não sei como tive a coragem, mas arregacei as mangas e fiz, por conta própria, o driver do AR para Oracle que hoje é utilizado no framework. É por isso que o mesmo ainda tem um pequenos bugs, mas ao poucos tô corrigindo o que posso, rsrs.
Essa tarefa me custou cerca de 1 mês a aprender a estrutura do Yii e até a do Prado para gerar os metadados.
- Nesse meio tempo, foi uma pauleira pra fazer o Wamp trabalhar com o pdo_oci (do Oracle)!! O driver para Windows é meio bugado e eu tive que atualizar meu cliente Oracle para a versão 10g para funcionar. Umas 2 semanas só com isso.
Ufa! Tudo preparado, comecei a mexer pra valer no Yii (ja tinha lido bastante e feito uns testes, mas nao tinha feito nada pra valer). Hora de mais dificuldades:
- Sem experiencia com frameworks, sofri HORRORES pra entender como funcionavam as ACTIONS, como se renderizava modelos e, principalmente, para enteder a sacada do ActiveRecord. Programador estrutural, eu queria porque QUERIA fazer um arquivo de script para minhas funções PHP, huAhahahAH
. E antes eu imaginava entender (e usar) MVC… Até entender controllers e suas actions, sofri MUITO.
Depois disso foi mais tranquilos, mas não sem percalços:
-
Dificuldades com Ajax
-
Dificuldades com jQuery
-
Dificuldades com RBAC e UserIdentity.
-
Dificuldades para lidar com os Modules e criar layouts personalizados, porém herdados do layout da aplicação principal.
Em geral foi isso. Porém, não há arrependimentos, só tive ganhos. Hoje, nao troco o Yii por Java/Struts/Whatever nem sob tortura. Felizmente, tive essa carta branca para estudar o framework e implanta-lo aonde trabalho.
A produtividade da equipe aumentou de forma assustadora, assim como a curva de aprendizado de novos integrantes está bem reduzida (ministrei treinamentos no Yii com cerca de 15h).
O engraçado é que rolou um preconceito geral com relação ao framework, visto que alguns integrantes vinham de Java e outros não acreditavam em frameworks (antes do Yii eu tb era assim
). Antes do treinamento rolava um desdém e pouco caso.
Porém, no PRIMEIRO DIA do treinamento, era engraçado demais ver a cara de espanto dos mesmos que antes desdenhavam. Alguns não acreditavam no que estava acontecendo (no primeiro dia eu já ensinava a gerar o scaffolding).
Quando começaram a usar pra valer houveram muitas duvidas ainda, mas eu diria que foram mínimas. Por vezes haviam problemas que eram classificados como "bugs do Yii". Aos poucos foi-se vendo que o problema na verdade estava entre o teclado e a cadeira, rsrsrsrs. Hoje, é MUITO dificil termos um problema estranho e acharmos que é "bug do Yii". Quando acontece, hoje é mais facil ouvir "acho que eu fiz alguma besteira", rsrsrs
@Daniel
Realmente, o AR ainda não é totalmente objeto-relacional. Se pudesse fazer o que vc está querendo, seria fantástico.