Comparison | Development Framework
Introduction
The PHP development framework has recently become a hot topic for discussion in the PHP community, and new frameworks are being introduced almost daily. In the face of more than 40 development frameworks on the market, it's hard to tell which one is best for you, especially if the features offered by these frameworks are different.
This article will guide you through the 10 hottest and most popular development frameworks and make horizontal alignment. I'll make a list of all the frames first, and then we'll take a brief look at them individually.
Overview
Below you see a list of these 10 development frameworks, listing the features they provide.
Framework Comparison Chart
framework |
php4 |
php5 |
MVC 1 |
multiple DB ' s 2 |
ORM 3 |
DB Objects 4 |
Templates 5 |
Caching 6 |
Validation 7 |
Ajax 8 |
Auth Module 9 |
Modules |
zend Framework |
- |
|
|
|
- |
|
- |
|
|
- |
|
cakephp |
|
|
|
|
|
|
- |
|
|
|
|
- |
symfony Project |
- |
|
|
|
|
|
- |
|
|
|
|
- |
seagull Framework |
|
|
|
|
|
|
|
|
|
|
|
wact |
< Font color= "#ff6600" > |
|
|
|
- |
|
|
- |
|
- |
- |
- |
prado |
|
|
- |
|
- |
|
|
|
|
|
|
php on TRAX |
- |
|
|
|
|
|
- |
|
|
- |
zoop Framework |
|
|
|
|
- |
|
|
|
|
|
|
|
ez components |
- |
|
- |
|
- |
|
|
|
|
- |
|
CodeIgniter |
|
|
|
|
- |
|
|
|
|
- |
- |
|
#1: Indicates whether the frame is built into the model-view-controller.
#2: Indicates whether the framework can support multiple databases without modification.
#3: Indicates whether the framework supports object record Mapper, which is usually a ActiveRecord package.
#4: Indicates whether the frame contains other database objects, such as Tablegateway.
#5: Indicates whether the framework builds the template engine.
#6: Indicates whether the frame caches objects or other caching mechanisms.
#7: Indicates whether the frame has built-in checksum or filter components.
#8: Indicates whether the framework has built-in AJAX support.
#9: Indicates whether the framework builds a user validation module.
#10: Indicates whether the framework contains other modules, such as RSS feed parsers, PDF modules, or other utility modules.
If there are any irregularities listed in the table above, please treatise.
Zend Framework
The Zend framework is still quite new and still in beta (translator: as opposed to when the author wrote this article), so there are still some features to be completed (for example, user authentication module), but it already has a lot of functionality. Although it's not cheap from the comparison table, the Zend Framework does encompass a number of modules for processing PDF documents, RSS feeds, online Services (Amazon, Flickr, Yahoo), and even more. The Zend framework also contains several different database objects, making it much easier to query the database and even save you the hassle of writing SQL query scripts.
Currently, the Zend framework does not fully support ORM, but developers are still stuck in the debate over whether to add an ORM layer. Perhaps in the future, you can write your own ORM package, contribute to the community, and have the opportunity to integrate it into future versions of the framework.
The Zend framework looks promising, and it fixes some common PHP problems at the same time. Maybe the stable version will do a better job in the comparison table!
Cakephp
Cake is an advanced MVC framework with a few modules. It can handle most database transactions and support AJAX data validation. At the same time, its user authentication module (accsee List) is also very unique, it can be for different users to visit different parts of the site to assign the corresponding access rights.
Although the cake site looks stunning, the framework itself is more complete and usable. It is a bit of a surprise that the stable version has not been written yet, but I guess it may be possible to develop a product with a beta version (Risk you @ss baby!).
Symfony Project
It's not hard to see from the comparison table that Symfony is a very scalable development framework that is even fully implanted with a orm,propel that is called propel, and is probably the best ORM solution on PHP to date. Symfony also incorporates Creole for the database abstraction layer and Mojavi for the MVC model layer. Since it simply reuses the source code of these projects, rather than rewriting them, the framework has a very strong extensibility, as starkly expose anti-liberal in the table.
Symfony has two flaws so that it does not support PHP4, which is due to the need to support many of the new features in PHP5, and the second is relatively complicated. Most tasks, like paging, are much more complex in symfony than other frameworks, and this is by no means a concise, well known framework.
Seagull Framework
The Seagull framework looks pretty good, with a lot of features. Supporting PHP4 is also very beneficial to its promotion, I am still using PHP4, and most space-hosting providers have not fully supported PHP5.
Unfortunately, Seagull does not offer AJAX support, but it's a bit indefensible, but Google can easily search for a tutorial that adds AJAX support in the future, and it should be added to the framework.
Wact-web Application Toolkit
Wact has great potential, and the framework's base is readily available, like MVC, database objects, and template engines, but that's all. It does not have any plug-in modules, but also lacks some built-in functionality, such as AJAX, caching, validation modules, and so on.
Still, Wact has the best template engine and can even help you create your own template tags to extend functionality.
Prado
Prado is very unique, and it provides some cool features. It does not have built-in support for MVC (as far as I'm concerned), but it does have a wide variety of components that handle most PHP tasks, and, even better, it implements event-driven scripting. For example, setting the OnClick event on an HTML button links to a PHP function. This is approximately asp.net, and Prado does contain more asp.net components, such as the GridView and Repeater control.
By contrasting the data on the table, Prado appears to be weaker than the other frames, but that is not the case. Because Prado is so unique, although it does not score high, it is very powerful in practical applications.
PHP on Trax
This frame looks like it's an interface between Ruby and rails on PHP, and it used to be called PHP on rails. Unfortunately, its documentation is so scarce that it's hard to tell what the framework provides, but the documentation does mention ActiveRecord, so it can provide ActiveRecord, like Ror. And there's Ajax support built into it, and it's not hard to see from the two demo videos on its website.
PHP on Trax Basically meets the user's requirements for the framework, but it still lacks arms and legs, such as validating modules and caching modules. It also does not have any plug-in module, is at present, it is very elementary.
Zoop Framework
The Zoop framework can be said to be all-inclusive, compared to the table at a glance, almost all support, in addition to the ORM layer. What's even more surprising is that it supports PHP4, which is simply too much for the overall functionality it offers, great!
Zoop also provides built-in GUI control, making it extremely quick to create a form. It supports most of the most commonly used form elements, and the advantage of using GUI control in regular HTML is that you can combine the logical operations of validation with GUI controls tightly.
EZ components
EZ Components is not so much a framework as a set of components, probably because it does not have built-in support for MVC.
It includes most common components, such as database components and cache components, but there is still something missing. For example, there are no ActiveRecord components and validation components. On the other hand, it provides some external components, such as e-mail components, but not many, other frameworks (like the Zend Framework) provide more.
CodeIgniter
CodeIgniter is relatively new framework, its author is ExpressionEngine development team (Translator Note: PHP Blog program Pmachine upgrade products, unfortunately not free), looks very potential. Unfortunately, it is not yet able to handle multiple databases, although this feature is still under development.
It comes from Ruby on Rails, so it provides a lot of the same functionality, such as scaffolding (code generation). Its documentation is pretty good, and there are even video tutorials to help you get started quickly.
The winner is ...
Here I have to declare with great regret that no one has won. Each framework provides a different feature, so no one can win. As always, this will ultimately depend on personal preferences and choices. I highly recommend that you carefully study the documents of each frame before you make your decision, and that the rest is on your own judgment.
Personally, I really liked the Zend framework, but when I looked at each frame carefully, I found a lot of interesting features, like Prado events, or Symfony ORM packages.
When you really can't decide which frame to choose, you can still choose to do as most people do: do it yourself. It's a time-consuming effort, but it's fun.