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!
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.
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]
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.
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.
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.
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.
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.
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.
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