However, there are over 40 frameworks available and different frameworks have their own peculiarities and which one is best suited to you depends on your needs and other aspects which we would explore in this post.
Some of the best frameworks around are: Zend, CakePHP, Symfony Project, Prado and CodeIgniter.
Despite the fact that Zend Framework has just come out of beta and is in its nascence, and that there are a couple of modules still awaited (viz. user authentication module), it still has quite a few captivating features which make it an attractive option to pursue. If you’d want to assess the frameworks through the comparison charts alone it might not strike you instantly due to a relatively less number of checks, but what makes it alluring is that through its other modules you can effectively handle PDF files, RSS feeds, Web Services viz. Amazon, Yahoo or Flickr, etc.
Moreover, the various database objects facilitate and simplify querying your database, that too without the need to write any SQL on your own. Some find it tough but it’s also the fastest and provides more support and professional code needed. It is quite suited to those who want to build applications for large corporate entities.
As of now the Zend Framework doesn’t offer a full-fledged ORM or a PHP 4. While the arguments for and against including the ORM continue, you might very well consider writing one for your self and append it to the framework.
We’ve been generously making use of the Zend Framework, and think that the present as well as the future looks quite good for Zend. The most common PHP problems are being fixed and the stabler versions would have more features. And then comparison charts themselves would be sufficient to make an impression. Before, that happens, the professional coders can very well make use of its rich features to develop scintillating applications.
CakePHP is quite popular and it can be considered for the most part an advanced MVC framework, coupled with additional modules. Most of the database part can be effectively managed with it and the support for Ajax and data validation facilitates the process further. One of the striking features of the module is certainly the ‘Access Lists,’ a user authentication module, it enables you to allow different users access portions of your website built in CakePHP. Moreover, it facilitates the use of rails. There is also an active community for the framework.
Despite its through functionality, ready usability, what’s surprising is that it doesn’t appear to have a stable version till now. It may be considered somewhat slow on the speed front.
We’ve worked with CakePHP framework on many projects now and have found it to be one of the most promising frameworks. At present it is being used by numerous companies and websites. It’s functionality makes it suitable for all types of applications. Further, it also is a large storehouse of code base of components and plug-ins.
The Symphony framework is the most feature-rich product, moreover it uses distinct modules to manage functionalities such as a DB layer. Its extensive framework entails a full-fledged ORM titled Propel, which is an open source project. Propel is perhaps one of the top ORM solutions for PHP. The framework also comprises Mojavi for the Model-View-Controller model layer in addition to Creole for the database abstraction layer. It acquires its wide-ranging functionality from the fact that re-uses other projects rather than re-writing them.
Given its functionality, the framework is quite attractive, but it cannot be run on PHP4, probably due to the fact that it utilizes many new features of PHP5 and which is quite complex. A great degree of tasks are found to be quite complicated (viz. Paging) in Symfony when compared to other frameworks. Moreover it is also pretty much slow.
Our experience of using Symfony tells us that its feature richness and functionality make it a great candidate for projects which need some big features.
Prado is perhaps the most unique framework around with some great features to work on. Unlike some it is not a clone of rails, it can better be called as an ASP.net in a PHP. It has numerous components to effectively manage the most common PHP tasks. Moreover, its capability to make event-driven scripts possible is quite exciting too. An example would be that you can set an onClick event on an HTML button which in turn links to a PHP function. Features such as these make it quite similar to ASP.NET and Prado comprises several more ASP.NET components such as the Repeater Control and a GridView.
Since, it is a relatively new kid on the block it can’t be expected to be as much powerpacked as the ASP.net, but can be considered as a good framework for those who already have knowledge about ASP.net.
If you were to only trust the comparison charts to draw a conclusion about the framework then you might not be able to judge the true power of it. On the face of it, it does appear to be a bit frail but there is more to its uniqueness in terms of features and functionality. We found its features unique and because of its ability to handle event based web application like ASP.net it can be useful for projects with big enterprises.
CodeIgniter is a relatively new framework brought out by the makers of ExpressionEngine. The framework appears to be quite promising and in short it could be called a simplified CakePHP. It can be considered as a boon for beginners because it doesn’t enforce strong MVC sequences, such as those found in rails or cakePHP, however it offers the same functionality as offered by Ruby on rails viz. scaffolding. Moreover, it’s quicker as well when compared to several other frameworks.
Based on the Model-View-Controller pattern, CodeIgniter promotes separation of content and application data. So if you use it judiciously, the resultant would be cleaner code and quicker development of PHP apps. Additionally, you can save lots of time and code with it for simple things. And since the naming conventions aren’t very strict, if facilitates using databases that you do not control or don’t have permission to modify, etc.
CodeIgniter offers great extendability. It lets you extend core classes, alternatively you could replace them with your own implementations. Further, if you want you can even create your own libraries and helpers.
On the documentation front it is excellent and there are even a couple of video tutorials so that you could be up and running ASAP. Lots of components and a strong community, it is an intriguing framework indeed. One issue however is that it doesn’t handle multiple databases as of now, but that’s being worked upon.
Our experience with CodeIgniter shows that it can be quite good for an intermediate PHP programmers who want to automate repetitive programming tasks and switch to object oriented programming. Moreover, if you’re unhappy with a bit too large and undocumented frameworks, CodeIgniter with its great toolkit to create full-featured web applications should be able to meet your needs.
More Related Links
We reccomend these frameworks because we found them to be the best ones to work with in comparison to the other frameworks. Since, different frameworks have their own peculiarities, you are the best judge of the one that suits your needs best.
Disclaimer: While we have tried our best to ensure that the information contained in the post is correct, please let us know of any errors that may have inadvertantly crept in.