Once you have mastered the basics of object-oriented programming and learned how to implement certain common design patterns in real-world conditions, you should be armed with a useful toolset consisting of all sorts of classes and functions that can be used by any user 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 where the capabilities provided by your own framework just aren’t good enough to meet the needs of a particular application. In such a case, you can update your framework, which will likely require coding additional classes and functions, or you can choose third-party software from the many packages available on the internet 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?
In fact, the answer to this question largely depends on the type of project you are developing and how much time you are willing to spend setting up and learning to use a particular framework. For example, Zend is great for building enterprise-grade PHP. applications, but you will probably find it quite 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?
- 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.
- Excellent documentation.
- MVC Architecture
The model, view, and controller architecture is nothing new. It seems that nowadays all coding frameworks are MVC, and if they aren’t, they can be easily configured. I’ve had experience building large applications procedurally and every time they end up with unmanageable spaghetti code. The MVC method provides good code separation and keeps things clean. Some frameworks force you to do things by the book, but CI allows you to use MVC in ways that make sense to you. If that means ignoring all models, then so be it.