Long journey to the framework…
I’m developing web-applications since 2004, I am crazy about nice architecture and first-class CSS+JS frontend. On the server side, I was using my framework, quite basic one. And all my projects were based on it.
In the October 2008 I finished one of my projects using my own framework. Then looked at it critically, then saw description of the Zend Framework (it had so many features, that mine didn’t!), and decided to move from my own development to the better product.
Main requirements to the framework were:
- 100% OO architecture. I don’t like to work with Drupal or jQuery. I enjoy ExtJS, for example. And I wanted the same nicely designed PHP framework. Nice OOP in PHP began from the PHP5, so all frameworks, that were initially written in PHP4 and not completely rebuilt to PHP 5 are not considered.
- Component/modular architecture
- Event-driven programming. I enjoyed this thing in ExtJS and wanted to write PHP code in the similar way
- Excellent documentation. Again, I compare this to the ExtJS docs, which are VERY nice. So I wanted every little feature explained and documented.
- Active community. It’s never possible to cover everything in the documentation, so active community is a VERY big plus.
Sure, framework must be free.
Initially, I was choosing between ZendFramework, CodeIgniter, Symfony, CakePHP. However, fully PHP5 are only ZF and Symfony. Yes, I know, that both Cake and CI have PHP5 classes, but they are not designed for PHP5. CI, in particular, states:
Note: CodeIgniter will run on PHP 5. It simply does not take advantage of any native features that are only available in that version.
But neither ZF nor Symfony had event-driven programming, so I found one more framework – PRADO. I liked all it’s features, expecially component approach and event-driven programming, but on the prado forums I found an announcement, that Main team members has developed a completely new framework, that took best things from PRADO, but has significantly better performance. Yes, it’s Yii, the framework of my choice.
OK, I’m here, but what’s that?
From the official site:
The name Yii (pronounced as [i:]) stands for easy, efficient and extensible.
I studied the definitive guide. (By the way, it is now available in 9 languages. Translation is done by the community. German and Russian translations are almost finished, others coming soon)
I immediately liked it’s:
- 100% OO architecture. It is really good application design.
- Authentication & roles mechanism
- Caching techniques
- DB access, which is based on PDO
- Active record and relational active record implementation
- Validation – that is really, really nice. To create quite complex register form (check if login is unique, if email is unique, email match with confirmation, passwords match, validate integer/string values, check empty fields and give nice error messages for each field you need only template (view) and model with rules defined. It took me 10-15 mins to do that!)
- Component concept. Just to give an idea, why is it nice – you can define getter and setter methods for properties, you can define read-only properties for components, define and invoke events, attach event handlers and additional features to the class without modifying it, just by attaching additional behaviour to it
And, yes, Yii is quite fast. And in combination with it’s advanced caching it can be used for the high-loaded websites, I’m developing one with it now
By the way, Yii is the only PHP framework selected for the Great Indian Development Award voting. I voted for it, maybe you’ll like it also? Try it and vote for it!
P.S. If you’re Russian, join us in the Russian discssion board, I reply all threads there and clarify all questions.
No related posts.
Related posts brought to you by Yet Another Related Posts Plugin.