I have been a developer for many years, initially I would sometimes build custom frameworks tailored to customer cases I had and then continue building on them, but since the overwhelming of technology and the rise of responsive sites a custom framework unless powerfully backed up would slowly decline, refactoring is always nice, keeps your coding skills in adequate level but yet when you have to meet deadlines and customers who are not sure what the end product should feel or look like it all becomes a mess.
I have been using Cake for a long time, although many condemn it regarding its speed, I believe with proper tuning and caching you can get adequate performance, especially on sites where the content is updated slowly around the year.
I decided to use another framework, I have to be honest, Yii got my eye because of all the hype going around its name, Yii this and Yii that, fast, powerful etc…
So I got myself a version and tried to mess around it, my initial feelings were amazement and frustration! I was amazed about what Yii can do but yet I was frustrated because the documentation although covering most of the aspects lacks the power of Cake’s, you have to jump inside the API or google to find how a specific method works or what are it’s parameters, this is a nice way to learn the framework but a very slow way especially when you need to complete certain tasks in a certain time period, don’t get me wrong I know this is open source and I do understand the tremendous time required to build such a framework and also inject or extend the capabilities of it.
I am just writing what I think sets a small drawback into it, I am already getting used to Yii and overcoming the used workflow of Cakephp were things follow a certain path (yet I don’t believe that Cake forces you to work in certain ways -as people sometimes say-).
Cake has a concept on its workflow but certainly it does not limit you to how you are going to implement something, yes sometimes you have to go the Cake way, but most of the times that is how you maintain compatibility with the framework you are working and additionally allow other programmers to follow your project.
I really like Yii, indeed it is as powerful and easy to use as described, yet I feel that the documentation should be a bit more technical and better shaped regarding the demands of active project developers, yes you can read the API and class reference but when you are working on a huge project your time is limited regarding this issues, and even more limited if you have to introduce new developers to the framework (had a few other developers sharing the same feelings).
I am now slowly adopting Yii as a framework, yet I have a long path until I master details (which are usually the driving force when you are building a project, yes I know what a Model is, but I need to know what the Model class offers to my hands, yes I know what a view is, but what are the capabilities of my view classes? how far can I push and keep my code clean and workable).
And for a quick example, I was looking into the range validation, I pretty much understood the way to implement it, yet the documentation partially failed to provide me with details regarding the range…does array(1,4) (number range from 1 to 4) work? or do I need to go array(1,2,3,4)?
Thank you for providing this lovely framework, I am just posting to share some thoughts regarding my experience, and why not maybe share opinions with other developers here.
P.S Maybe the frustration could be better translated that Yii is so free on how you implement things that sometimes you think if the way you are implementing it will break backward compatibility in the future, or if the way you chose is "acceptable" in framework terms.