PHP Frameworks : First glimpse for beginners
Being a webmaster, I code fairly often. I love the concept of open source and I think Apache, MySQL & PHP are the best thing that happened to mankind! Ok, I take that back(phew! women I tell ya). Anyways, I do love AMP and open source technologies. And as a webmaster, I am always trying to keep my skills polished and up-to-date.
Recently, I took on a project to code a web application from scratch. While doing my research on UI, Architecture, etc. I found out it’s going to be a mammoth task to code the application in plain PHP, from scratch.
Now, Most of you would suggest I should use a pre-existing open source solution, and logic would dictate I should probably use one. Sure! I should…But, How then am I going to learn and become more geeky and at the same time save time develop and deliver the web app?
Enter, PHP Frameworks.
PHP frameworks have been around for quite some time now and they have evolved, robustly. Php Frameworks are essentially web application development frameworks, that allow developers to develop enterprise or business level web applications pronto or at least faster than developing them from scratch. Web application development frameworks are built on the principles of code libraries, providing snippets of code/libraries/extensions, that help you develop faster, by abstracting mundane and repetitive tasks like database connection, etc by providing a pre-built frame for use.
Here is my list and personal review of some great PHP Frameworks, that you could probably learn and make great web apps with!
Akelos:
An MVC based PHP Framework with scaffolding, AJAX, transactions and more. I found Akelos to be robust, but again installation can be tiresome. Documentation for beginners trying to grasp PHP Frameworks is extremely limited. All in all good package, but needs to be better where documentation is concerned. I haven’t really tried out the support and there is lively community building on Akelos. There are plenty of plugins too. I did rate Akelos 6 out 10 for people who are just getting to know PHP frameworks.
Pros: Ajax based views. MVC based. Scaffolding available. Great for developing stand alone applications. Screencasts tutorials available. Open source. Download is free.
Cons: Documentation is limited for beginners, there are a lot of things missing in examples given, especially if somebody is trying to decide to use a PHP framework for development purposes. Screencasts are limited.
Rating: I would rate Akelos 6 out of 10.
CakePHP:
A MVC based PHP Framework, distributed under the MIT license. CakePHP prides itself in being simple.
“Just look at the name…It’s Cake” - CakePHP.org.
Pros: Easy to setup. Easy to use. Compatible with both PHP 4 and 5. Flexible licensing. Plenty of screencasts to help you get setup and for beginners to start using it. Great community. Widely used.
Cons: Documentation could be tighter, a newbie would definitely get scared looking at the documentation.
Rating: I would put cakePHP at 8 out 10.
Notable Comments for cakePHP from readers:
“… one of Cake’s biggest selling points for me is the amount of help you can get in the #cakephp IRC channel on freenode. It’s unlike any other channels I’ve been in to ask for help (e.g. #drupal-support). People are friendly, receptive to problems and willing to help in a non-condescending manner. It’s often the developers themselves who actually provide help. What more could you ask for?
If you’re looking for a more valid “con”, I’d say it’s the approval process for documentation changes. It needs some work but I believe that’s already in motion….” – Dean Clatworthy[read more]
CodeIgniter:
My personal favorite, and I myself have learnt using PHP Frameworks, using CodeIgniter and EE. An Open source product from EllisLab, CodeIgniter is easy to learn and grasp for PHP beginners.
Pros: Small foot print. Easy to setup. Delivers performance. Open Source. Almost negligible configuration required. Negligible coding rules. Great documentation for API and for beginners. Runs on PHP 4 and 5. Is independent of PHP 5. Its Fast. Comes with many inbuilt libraries that make coding easier and one can focus on development, rather then finding solutions(not that you shouldn’t but time is of the essence here
). It DOES NOT require a templating engine. This means that you can use your xHTML/CSS based designs directly with CodeIgniter. Large Community of developers using this platform.
Cons: Documentation could be better. Screencasts are limited. PEAR support is not there. AJAX based views are possible, but not inbuilt, Mr. Derek “Dallar” Allard of BambooInvoice has made a screencast that would really go down well with beginners.
Rating: All in all CodeIgniter gets an 9 out of 10 from me.
**DooPHP:
Thanks to mhdex, we have a new contender. DooPHP, is, I feel is a good, robust PHP Framework. It has fabulous documentation, and is feature rich. I would highly recommend starting from DooPHP, if you are a beginner with the MVC framework.
Pros: Great documentation. Great support. Great Coummunity. Extremely low learning curve as compared to some frameworks here. Light. Fast.
Cons: Setup is easy, albeit some features would require some tinkering. May not work with PHP 4.x.
Rating: I would rate DooPHP a nice 9 out of 10.
PHPDevShell:
The unique thing about PHPDevShell is that it has a GUI administration panel. Its not much in the aesthetic part, but lets you get the job done. Its more or less like the Joomla CMS, but only what you may think as “Primitive”.
Pros: GUI interface to manage the Framework, includes theme and plugin management. Fast web app development, almost no coding required. User registration and roles are inbuilt and readily available.
Cons: Relatively a new Framework. Not a CMS or MVC framework. Some where in the middle. For intermediate users only. Documentation is not sound. Not at all for beginners.
Rating: From a personal point of view, I was lost while learning how to use the framework. Its can be a little cumbersome. Don’t get me wrong they have a fabulous wiki and support set up, but still needs to be more pro-user. I would rate PHPDevShell 5 out 10.
Prado:
An event driven and component-based framework, Prado is a really robust and completely object oriented. PRADO stands for PHP-Rapid-Application-Development-Object oriented. First released in May 2004, has come a long way.
Pros: O-O based. Event driver. Free. Suitable for business applications. Organized documentation. Easy installation. Ajax is inbuilt, especially for drag and drop controls.
Cons: Not suggested for beginners. Albeit, its pretty powerful and has come a long way, its still has a long way to go and it will get there. Being almost, completely event driven, it takes a little time getting used to if you are not familiar with event driven APIs or Frameworks.
Rating: I would rate PRADO, 7 out of 10.
Symfony:
A robust, enterprise level, PHP framework, which is easy to install and has a lot documentation and screencasts available.
Pros: Free, MIT/X11 License. Clean design, small overlead like CodeIgniter.
Cons: Installation can become tedious. Often, once has to pay for support or training. Again, I will not suggest PHP beginners starting with this framework.
Rating: 7 out of 10.
Zend Framework:
The know-all and do-all name in the world of PHP. Zend is pretty trusted and has been associated with PHP since day 1.
Pros: Great documentation, goes to the extent of teaching PHP first! Great for beginners to start with. Clean code. O-O based.
Cons: Latest release requires PHP 5.2.4 or higher. Works wonders if you know AMP setups and work on *ix systems.
Rating: I would rate Zend 9 out 10.
Conclusion:
Personally, I develop a lot of code with CodeIgniter, may be because its easier to grasp, or may be because I have gotten used to it. Zend and PRADO are worth a look. I would not advice beginners to start with Sympfony or with PHPDevShell. The final call still rests with you
I just wanted to bring to light these wonderful technologies that are available to developers & webmasters, alike, to build some fabulous web applications.
Do you have views on these or any other PHP frameworks? Did I leave some biggies out? Do provide feedback and comments!
** DooPHP was an edit to the post
I liked it and had to add it! Thanks mhdex
Further Reading and Resources:
Wikipedia has a complete list of all PHP Frameworks till date, infact all coding/development frame works. More information on these and other PHP frame works is available.Tags: akelos, cakephp, CodeIgniter, PHP, php framework, phpdevshell, PRADO, sympfony, web application development framework, Zend php framework
Ejaz, I would suggest using zend, for the same because its scalable. Or you could try HipHop(Not a frame work as pointed out by jonix) from Facebook, that could help you alot to build your own social networking website, it you planning on making it a big one
otherwise any of the above would do just fine, and if you are into RoR that would work too, twitter is/was built on that!
lol, Hip Hop it’s not a framework, it’s a port of the PHP, to speedup code. Nothing to do with a framework
Hi Jonix, hence you don’t see it above
but having tried it, it works wonders!
could u please tell which framework would be useful to develop a social networking site
The Nephtali web framework takes a novel approach to web application development, leveraging the new functional capabilities of PHP 5.3. The framework makes use of a unique architecture incorporating micro controllers (as opposed to front or page controllers) and embedded views (all of the possible displays for a dynamic region are embedded within together in the same page.) .. For More Please visit the Nephtali Framework site
I have to disagree on the CakePHP documentation con. Having been a Cake user for almost 3 years now there’s only a few things that I’ve had to do that haven’t been in the manual. On top of that you have the bakery which is a great collection of user-contributed tutorials. It’s solved countless problems for me.
And… one of Cake’s biggest selling points for me is the amount of help you can get in the #cakephp IRC channel on freenode. It’s unlike any other channels I’ve been in to ask for help (e.g. #drupal-support). People are friendly, receptive to problems and willing to help in a non-condescending manner. It’s often the developers themselves who actually provide help. What more could you ask for?
If you’re looking for a more valid “con”, I’d say it’s the approval process for documentation changes. It needs some work but I believe that’s already in motion.
Hi Dean,
Again, the purpose of writing this post was to gauge how easy it is to adapt and start learning a PHP framework for people who already know basic/intermediate level PHP and would like to get started with PHP frameworks.
Now I know cakePHP has support, but where the documentation exists per se for beginners wanting to get to know MVC, PHP frameworks, it does require some work to work with newbies in the MVC / Frame work world.
Thanks for you comment
Hi again,
Please bear in mind that when I learnt Cake I’d describe myself as someone who was new to frameworks. I had the same problems people are going to experience today. That’s why I made my comment to debunk the criticism you made about the documentation.
Dean
Hi Dean,
I understand that you were a beginner too, at the time when you started using cakePHP, the pros and cons stated above are more my views of what I difficulties I faced when I first started out with php frameworks
I have added an after note for cakePHP, adding your views on cakePHP and its documentation/community.
Thanks agian!
Had a looked at it. Its nice
very good post. thanks!
Thanks Jorge!
Don’t wanna to start a flame, but symfony is much better than you described…
Installation is simple: you just install it via PEAR and you then have a full featured CLI to do whatever you want… Paying for support is completely up to you, but before doing that you can look at the huge amount of documentation, forum, blog posts around the web, and most of all the mailing list which is full of nice people that almost never let you down.
In the end, this is an enterprise-level framework, and as such it is a little hard for beginners. But IMHO, beginners should not start with a framework anyway, they have to figure out a lot by themselves, and then use a framework. Otherwise, they just don’t get it when it comes to do a simple problem without a huge framework…
I Hear ya! But, I wrote this article for people who did like to start with PHP frameworks, both Symfony and PHPDevShell are brilliant frameworks, but are not suited for some one who has learnt PHP [intermediate to advance level] and is thinking/or wants to use PHP based frameworks.
If I advice beginners in the frameworks world or the MVC world to start with enterprise level frameworks, that wouldn’t be too nice!
I just started using CakePHP. I like it, but the documentation is pretty limited. Books on the subject are limited as well. If things don’t go well with Cake, I’ll have to check out CodeIgniter.
Hey,
I would suggest checking out doophp also, and compare both codeigniter and doophp
I would give 10 to CodeIgniter
No problem. I’ll try to get the third one done by next Monday.
check out DooPHP as well
Thanks mhdex, I really liked dooPHP, neat framework, great for beginners and great documentation!
If you liked Code Ignitor, check out Kohana PHP V2.3 and V3
Seems great. I would love to give kahona php v3 a try..was browsing the site, the documentation seems a little haphazard but the framework looks sturdy
will definitely give it a try thanks for the heads up!
For documentation I’ve been using: http://kerkness.ca/wiki/doku.php
I’ve also been working on putting together some tutorials. http://www.dealtaker.com/blog/2009/11/20/kohana-php-3-0-ko3-tutorial-part-1/ – the second one should be out Monday.
Lookst robust, especially http://kerkness.ca/wiki/doku.php and your tutorial..
Waiting for part 2 already. Tried out kahona, almost as good as CodeIgniter, but still have to stress test it!
Thanks EllisGL
for the second tutorial!




















Every website I design/develop, I follow some essential steps to make your time and investment count. From free consultation to free post-production support. 
could u tell which framework should i use to develop a social networking site? dooPHP or codeigniter or yii