I’m new to the Yii framework ( digging through yii book right now ) and i have to learn it in really short time period. This is why i would like to ask Yii community for some heads-up on the problems i could encounter. I’m interested in problem and limitation of this framework, that i might run into.
P.S. : the book i mentioned is "Agile Web Application Development with Yii 1.1 and PHP5" ( amazon.com/gp/product/1847199585 ) , but the forum-hack prevented me from embedding it.
No, what I’m saying (or trying to say) is that you will have a hard time getting into a MVC based framework like Yii if you don’t have a clear picture of what MVC is.
And what kind of rules it brings with it.
But, if you do have solid understanding of MVC, then learning Yii should be straight forward.
One example:
In Ruby on Rails, CakePHP and Yii you get an awful lot of directories with a lot of files in it, and that can be quite overwhelming.
However, due to the rules of MVC, you know instantly (if you know the system) where things are supposed to be.
That’s MVC’s Convention over Configuration (Google or Bing that phrase for references).
In practice, that means that it takes me a very short time to become familiar with new code, like an open source Yii project, when (almost) everything follows the rules.
What I just said is the major obstacle for most people. But if you fail to see it, then you must obviously be used to the paradigm.
And will have a much easier time than I had when I learned CakePHP (which I was using before switching to Yii because Yii has less shortcomings than CakePHP has).
If Known Issues means ‘outstanding bugs’, then take a look here:
Yii is a fantastic framework although I came across an issue recently. I am using PHP 5.3 namespaces for my code. When using any widget that implements jQuery, the functionality breaks because Yii doesn’t fully escape the backslashes in the HTML output e.g.
//.. the model
$model = new \application\models\form\LoginForm();
//.. the jQuery - don't work
$('application\\models\\form_form_element')
//.. should be this
$('application\\\\models\\\\form_form_element')