As a Programmer for almost 5 years, it has been a journey finding a good PHP Framework, there are a lot of things to consider. But for me I need that the framework to be:
- Easy to learn and understand
- Agile development
- Re-usability of codes
- Less coding
- Fast processing and rendering
- Proven and has future plans for improvement
- Good support forums
- Extensions and components
I tried CakePHP, Zend, and Code Igniter and I find it much difficult to understand during that time, maybe because I am still new to PHP and knows a little in OOP. Since I handle the projects related to web development and the requirements are getting harder in small amount of development time, I thought that it is the right to push future developments to use framework, but the question is what? Until I was able to stumble, thank’s to google that Yii Framework is the best framework for web 2.0 development in a blog, the author compared Yii from Zen, Code Igniter, CakePHP and etc. At that moment I immediately downloaded and studied it and was amazed by the code generator module of Yii.
Yii Framework features
Gii Module (Code Generator)
To see the full list of Yii features, please click here. The most interesting feature of this framework is the code generation using code templates. For me, this is one of a kind. You need to design your database properly. Once it is done, you will go to Gii Module and generate model, and basic CRUD codes. You can modify the templates to make it more dynamic so that when you generate the code, you only need to modify small details of the module. For example, if you are creating an enrollment system and you are creating so many simple data entries, you can modify the template so that all you need to do is design/create the database tables and generate the codes. It is like you pre-programmed the templates.
It is important that when creating web applications, you need to separate each functions/modules to avoid other modules from being affected when some modules are modified. You may have shared files used by all modules but most of the time, you want to separate them. Yii supports HMVC which stands for Hierarchical model–view–controller. If you are familiar with frameworks, you often see MVC directories. See the illustration below:
—–> —–> submodulename
—–> —–> —–> /controllers
—–> —–> —–> /models
—–> —–> —–> /views
The above shows us a very nice way to organize your application at the same time separation of functionality.
Yii also supports ajax functions, actually the default application, testdrive is has ajax. From login to listing and pagination of the data.