Once you’ve mastered the foundations of the object-oriented programe and learned how to implement certain common design patterns in real-world conditions, you should be armed with a useful toolkit comprised of all sorts of classes and functions that can be used any number of times.
Although you may not be aware of this fact, your toolkit can be considered a general PHP development framework. The end result of your own efforts and skills as programmer.
Sometimes, there are certain situations when the capabilities offered by your own framework simply aren’t good enough to fit the requirements of a particular application. In a case like this, you can either upgrade your framework, which will probably require coding additional classes and functions, or you can pick up a third-party software from the numerous packages available on the web today.
If you choose the latter, then you’ll be confronted with another challenge that will keep your mind spinning in circles. Should I pick up a full-featured framework like Zend, or should I work with a more approachable solution, like CakePHP or CodeIgniter?
Actually, the answer to that question depends strongly on what type of project you’re going to develop and how much time you want to spend configuring and learning how to use a particular framework. For instance, Zend is great for building enterprise-level PHP applications, but it’s likely that you’ll find it pretty overwhelming to work with at first.
On the other hand, CakePHP can be much easier to set up and use, even though they’re not loaded with all the features offered by Zend. However, in the last few months, a small framework has gained popularity with many PHP programmers due to its ultra-fast learning curve and easy configuration.
Here my advice with CodeIgniter why?
- Excellent documentation.
- Large and active user community.
- Database abstraction and more.
- Built in security tools.
- No “installation” necessary.
- All the tools you need in one little package.
- Easy to understand and extend.
- Little to no server requirements.
- MVC Architecture :
The model, view, controller architecture is nothing new. It seems like all the coding frameworks are MVC nowadays, and if they aren’t it can be configured easily. I have had experience building large apps the procedural way and every time they end up with unmanageable spaghetti code. The MVC way of doing things offers nice code separation and keeps things clean. Some frameworks force you to do things by the books but CI lets you use MVC in a way that makes sense you. If that means ignoring models all together then so be it.