PHP development framework has become a hot topic of discussion in the PHP community recently, and new frameworks are launched almost every day. Faced with more than forty development frameworks on the market, it is difficult for you to judge which one is best for you, especially when the functions provided by these frameworks are different.
Overview
What you see below is a list of these ten development frameworks, listing the functions they each provide.
#1: Indicates whether the framework has built-in model-view-controller.
#2: Indicates whether the framework can support multiple databases without modification.
#3: Indicates whether the framework supports the object record mapper, usually this is the encapsulation package of ActiveRecord.
#4: Indicates whether the framework contains other database objects, such as TableGateWay.
#5: Indicates whether the framework has a built-in template engine.
#6: Indicates whether the framework caches objects or other caching mechanisms.
#7: Indicates whether the framework has built-in validation or filtering components.
#8: Indicates whether the framework has built-in Ajax support.
#9: Indicates whether the framework has a built-in user authentication module.
#10: Indicates whether the framework contains other modules, such as RSS feed parser, PDF module or other utility modules.
Zend Framework
Zend Framework Although it does not take advantage of it from the comparison table, Zend Framework does include some features for processing PDF Modules for documentation, RSS feeds, online services (Amazon, Flickr, Yahoo) and even more. Zend Framework also contains several different database objects, which greatly facilitates the implementation of database queries and even saves you the trouble of handwriting SQL query scripts.
Currently, Zend Framework does not fully support ORM, but developers are still stuck in the debate of whether to add an ORM layer. Maybe these functions will be implemented in the future, and you can write your own ORM package, submit it to the community, and have the opportunity to integrate it into future versions of the framework.
Zend Framework looks to have a bright future, and it also fixes some common PHP problems. Maybe the stable version can perform better in the comparison table!
CakePHP
CakePHP is an advanced MVC framework that comes with a few modules. It can handle most database transactions and supports Ajax data validation. At the same time, its user verification module (Accsee List) is also very unique, and can assign corresponding access rights to different users when accessing different parts of the website.
Although CakePHP’s website looks dizzying, the framework itself is relatively complete and usable. As of the writing, there is no stable version yet, which is a bit surprising. After all, it has been developed for several months, but I guess it might not be a bad idea to use the beta version to develop the product
Symfony Project
It is not difficult to see from the comparison table that Symfony is a very scalable development framework. It even fully integrates an ORM called Propel. Propel is also an open source project, and so far Probably the best ORM solution for PHP. Symfony also integrates Creole for the database abstraction layer and Mojavi for the MVC model layer. Since it only reuses the source code of these projects rather than rewriting it, the framework is extremely scalable, as is evident from the table.
Symfony has two shortcomings that prevent it from supporting PHP4. This is due to the need to support many new features in PHP5. Second, it is relatively complex. Most tasks, such as pagination, are much more complex in Symfony than in other frameworks, which is by no means a framework known for its simplicity.
Seagull Framework
Seagull framework looks pretty good and comes with a lot of features. Supporting PHP4 is also very beneficial to its promotion. I am still using PHP4 myself, and most space hosting providers have not yet fully supported PHP5.
Unfortunately, Seagull does not provide support for Ajax, which is a bit unjustifiable. However, you can easily search for a tutorial on adding Ajax support through Google, and this should be added in the future. in the frame.
WACT - Web Application Toolkit
WACT has great potential. It has all the basic components of the framework, such as MVC, database objects and template engines, but That's all. It does not have any plug-in modules, and it also lacks some built-in functions, such as Ajax, caching, validation modules, etc.
Despite this, WACT has the best template engine and even helps you create your own template tags to extend the functionality.
Prado
Prado is very unique and it offers some cool features. It doesn't have built-in support for MVC (in my opinion), but it does have a variety of components to handle most PHP tasks, and even better, it implements event-driven scripting.For example, setting the onClick event on an HTML button to link to a PHP function. This is similar to ASP.NET, and Prado does include more ASP.NET components, such as GridView and Repeater Control.
Based on the data on the comparison table alone, Prado seems to be weaker than other frameworks, but this is not the case. Because Prado is so unique, even though it doesn't score high, it is very powerful in practical applications.
PHP on Trax
This framework looks like it is simply an interface of Ruby and Rails on PHP, and it was indeed called PHP on Rails before. Unfortunately, its documentation is so sparse that it's hard to tell what exactly the framework provides, but the documentation does mention ActiveRecord, so it may provide ActiveRecord, like RoR. Also, it has built-in Ajax support, which is easy to see from the two demonstration videos on its website.
PHP on Trax can basically meet the user's requirements for a framework, but it still lacks arms and legs, such as validation modules and caching modules. It also does not have any plug-in modules, so for now, it is very basic.
ZooP Framework
ZooP Framework can be said to be all-inclusive. It is clear from the comparison table that almost everything that should be supported is supported, except the ORM layer. What's even more surprising is that it supports PHP4, which is really not simple for the comprehensive functions it provides. It's great!
ZooP also provides built-in GUI controls, making creating forms extremely fast. It supports most common form elements. The advantage of using GUI controls in regular HTML is that you can closely combine the validation logic operations with GUI controls.
eZ Components
ez Components is not so much a framework, but a set of components. Perhaps because of this, it does not have built-in support for MVC. support.
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 no validation components. On the other hand, it provides some plug-in components, such as e-mail components, but not many. Other frameworks (like Zend Framework) provide more.
CodeIgniter
CodeIgniter is a relatively new framework. Its author is the development team of ExpressionEngine (Translator's Note) : An upgraded version of the PHP blog program pMachine, which unfortunately is not free), and looks very promising. Unfortunately, it doesn't yet handle multiple databases, although this feature is still under development.
It originates from Ruby on Rails, so it provides many of the same features, such as scaffolding (automatic code generation). The documentation is pretty good and there are even video tutorials to help you get started quickly.
The winner is...
I have to announce with great regret that no one wins. Each framework offers different features and functionality, so no one is perfect. As always, in the end it will come down to personal preference and choice. I highly recommend that you read the documentation of each framework carefully before making a decision, and the rest is up to your own judgment.
Personally, I really like Zend Framework, but when I studied each framework carefully, I found many interesting features, such as Prado's events or Symfony's ORM package.
When you really can’t decide which framework to choose, you can still choose to do what most people do: do it yourself. It's time-consuming and labor-intensive, but endlessly fun.
As mentioned at the beginning, some frameworks have been significantly updated, and I tend to prefer symfony recently. Its rich documentation makes it very convenient to get started, but its complexity also makes it difficult to develop small projects, even The process is a bit of a waste for a personal mini-project like mine, and maybe CodeIgniter's simplicity is enough in this regard.