PHP is one of the most widely used Languages for Web development. Almost every other blog is running on Wordpress. Major sites on the Internet are powered by Drupal, Joomla, Mambo or sometimes, even Wordpress (once again). All of these Content Management Systems use PHP to get the work done. In fact, they are written in PHP! We need not exaggerate on the fact that PHP is one of the best (some say it is the best) language available for Web Programming. From simple one liner to extremely powerful content management and community management systems, PHP does it all. Its huge feature set would not let anyone complain for being in chains. The biggest plus point? Well, its damn easy!
But at times, PHP's large set of features mean 'confusion'. You can do the same work in more than a few ways. In fact a lot of methods can be used for one simple task. When developing web applications, there is no scope of mistakes in the planning stage. If you create something without speculating the future and the complete system design, you might end up with a fairly nice problem after some time on the development line is traveled. For this reason, frameworks must be brought in use. Of course there are ready made frameworks which you can use and then an intelligent programmer can create one all on his own! If you are someone ready to build his or her own framework, the following list should help you note and understand the important aspects that frameworks cover. In case you are a budding programmer, you might like to know how easy frameworks make life for you.
Almost no Web application today can be created without databases. You insert anything dynamic and you would be searching on the web for words like PostgreSQL, MySQL or may be SQLite. You might pick one. Now, think about creating queries. More tables and more and more queries, relations, joins, foreign keys and so on! If you make a mistake creating a query, your application gets screwed! PHP Frameworks help you by relieveing you off duty. Just call up the function which corresponds to a table / column and the work gets done.
When you create a database, you create it for handling data. SQL INSERT statements are not the best way to use your time. So you would create a form for it? Well, no. You would run a code generator for the database and the framework should be able to generate the forms which you think are going to be used for entering the data.
You submit something wrong in a form, database throws down an error and you start debugging about what went wrong. 10 minutes later your problem is solved! Using a framework, you can help this situation. First, the chances of getting errors gets reduced a whole lot because the framework will check whether everything worked fine. Second, they make debugging errors much easier.
Form Handling also contains Form Validation as one of its subdomains. Form Validation deals with the correctness of data you supply in a form. For example, if you enter alphabets in a form whose input is supposed to be numerical, Form validation logic will send back an error stating that the value was not expected and that the input must be numerical. With such amazing facilities, PHP frameworks help developers get the job done pretty fast compared to the raw logic which one might want to implement in his Website.
The HTTP protocol powers the Web and the Web 2.0, so to name it. Among all the problems which the new technology implementations try to solve, is the stateless nature of the HTTP protocol. When we say 'state', we mean to indicate some method by which the website remembers what you were doing. One of the most well known example of a 'state' in context of a website is the 'Login' system. When you log in to a website, it remembers your 'state' as 'logged'. Along with this, there are a lot of states which a web application needs to maintain. PHP frameworks allow the developers to manage the state of the application along with a lot of other things, making the life a lot easier.
Most websites are built on top of the famous Model View Controller (or as you would have guessed, MVC) architecture which talks about separation of the logics of Database handling (Model), the behavior (the controller) and the presentation (view) of the website. Most PHP frameworks out there also follow the same patterns and allow you to create web applications which are very much conforming to the MVC patterns. This keeps the development much easier than when a developer writes everything on his own.
EDP or Event Driven Programming is one of those things which any developer would want to do. In case you do not understand the term, it is all about taking actions when the events are raised. It helps you take actions when particular events occur; for example, when you have to take a series of actions on the database for extraction, manipulation and insertion of data when a button is pressed on a page. A page might contain many such buttons which can raise any event and the website must take appropriate action when the particular action taken. Such a style is called Event Driven Programming. Frameworks, including the PHP development frameworks allow you to do EDP. They help you take a lot of actions on events such as Key presses or button clicks. It allows you, the developer to focus on the program logic rather than investing your precious intelligence figuring out how to route the request generated by the button press through the application. Since most other actions are also controlled by the framework, they take care of EDP style development quite easily.
While the above is by no means an exhaustive list of features, we would surely say that there is a whole lot more which the PHP frameworks can help you do. We, however, do not mention them here because the extra functionalities provided by the frameworks hugely depend on which particular PHP framework you are using. We would take up the features of the other frameworks while we discuss about them individually.