There are many PHP frameworks out there such as Symfony, Zend, CakePHP, CodeIgniter, and many more. I don’t know that any framework is better in all things than any other framework. I think it’s probably a matter of familiarity and preference. My favorite as of this writing is Symfony. You can read about my experience with Symfony in my other blog.
When I first started using a framework, I was immediately impressed with how much time it cut from my web development. As a free-lance web developer, anything that speeds up my work is automatically a huge plus! My biggest fear with anything that said ‘Rapid Development’ was that it would automatically limit me in what I can and can not do, but I’ve found these MVC (Model – View – Controller) frameworks to be extremely flexible and allow me to do anything I can think of doing. After all, they are built in PHP, so if worse came to worse, I could always change the core code to make it work like I need it to work. Of course, I’ve not had to do this and it’s definitely a good idea not to change any of the core code. Changing the core code will allow updates to wipe out your changes unless you take efforts to keep that from happening. My point is that, as a last resort, I still have that option.
Most websites basically do the same things, so a framework that does all these things for me only makes good sense. There is no sense in reinventing the wheel when it comes to website development. Many websites today are using pretty URL’s which means a routing system is a necessity. Many websites also use some kind of user management and need login, registration, etc. Most websites use forms and need validation. And most websites also need to access a database or files of some sort and can use good data management tools. Frameworks offer these things without having to write the code from scratch. Most of the frameworks handle security, testing, email, and many other features that are common in most websites.
When I use a framework, I only have to worry with my business logic and the design. These make web applications much easier. Much of my code is already written for me as soon as I’ve installed the framework. Development becomes faster, better quality (fewer bugs), and more secure.
Of course, with any good thing, there are also some downsides. One of the biggest for me – and a reason that I built and used my own small framework for a while – is the complexity and constant changes made to the frameworks. I felt that I was constantly having to learn more. I always felt behind in understanding exactly how everything in the framework actually worked. I also felt that I had to constantly be acquiring and reading new documentation which slowed me down.
Recently, I realized that although I spent more time in documentation with someone else’s framework, I spend more time in development with my own framework. So, even with more reading, learning and documentation, I was still developing faster with the open source framework. I’m moving back to Symfony instead of trying to go it alone, even though, I have a pretty darn good little framework of my own.
Regardless of whether you have your own framework like mine, or you are using someone else’s framework, it will save you development time. If you haven’t used one before, you will be surprised at how much work it will do for you!