What is a PHP Framework?
A PHP framework is a set of functions and classes written in PHP that provides a starting point for developing web applications. Frameworks vary in directory structure, feature set, and documentation/support.
Why Use a PHP Framework?
As a PHP developer, it is frustrating to have to code projects over and over again from scratch. Many projects share common features such as mail functions, file handling, database connection, converting and translating text, and on, and on. By alleviating these common coding tasks, a good PHP framework allows a developer to focus more on custom business logic.
I am going to compare a few common PHP frameworks that I have used, feel free to add your own opinions and any frameworks I will inevitably miss.
Comparison of some PHP Frameworks I have used:
QCubed is a community driven fork of Qcodo. I am personally no longer using Qcodo in favor of QCubed. QCubed has two main parts, ORM code generation and QForms. Generated code in QCubed follows the MVC pattern, although an actual controller is never generated. Generated code is very easily extended through basic object oriented PHP. A proper MVC file structure can be accomplished and QCubed can produce very high quality web applications. QCubed is not as well documented as some of the other frameworks, but its code generation is extremely powerful and growing stronger.
QForms are essentially PHP objects of HTML forms. They are defined by Mike Ho as “…stateful objects that maintain state from one post to the next.” QControls are PHP objects used to control form elements such as QTextbox, QPanel, QLabel, QButton, and QControls can even be combined and extended to create new QControls. Any QControl can have events assigned to it (click, hover, blur, etc.) that can trigger actions (PHP or JS functions), providing unlimited functionality using advanced AJAX.
ORM Code generation examines the data model and writes data model classes based on relationships it finds. It also writes draft HTML forms to provide basic CRUD functionality. A developer can simply run a codegen on a database and end up with a working application that can list, create, edit, and delete database entries without programming a single line. The drafts will need to be edited, of course, to provide custom logic, but they provide for very rapid prototyping.
Extending the art & spirit of PHP, Zend Framework is based on simplicity, object-oriented best practices, corporate friendly licensing, and a rigorously tested agile codebase. Zend Framework is focused on building more secure, reliable, and modern Web 2.0 applications & web services. Zend is focused on using widely available web service APIs.
- An extensible and well-tested code base â€“ easy to augment
- A flexible architecture â€“ not locked-in to a rigid application structure
- No configuration files necessary to get up and running â€“ or when maintaining and deploying your apps
- AJAX support through JSON â€“ meet the ease-of-use requirements your users have come to expect
- Native PHP edition of the industry-standard Lucene search engine
- Zend Framework aims to be the premier place to consume & publish web services
- High-quality, object-oriented PHP 5 class library
Excellent documentation, simple to set up, easy to use and extend. Very well marketed, with cute names for things – For instance, applications built on CakePHP are considered “baked,” The CakePHP manual is called “The Cookbook,”Â and the portal-like “Bakery” offers up-to-the-minute details about the CakePHP community.
I like CakePHP and it does its job very well. It is not as enterprise grade like Zend, but it is very thorough and the cute names have attracted a good sized community. Some pretty powerful sites are being “baked” using CakePHP.
A very lightweight and easy to implement framework. A good choice for newcomers to PHP and MVC. CodeIgniter provides a very thorough class library, as well as helper functions for common tasks. Not my favorite of the bunch, as I prefer QCubed’s code generation to the scaffolding of CodeIgniter and QCubed is just as robust in other aspects.
Zoop has been in development since 2001 and in use for the last 6 years in a number of different production environments. While it predates the recent proliferation of PHP frameworks, it’s based on solid MVC principles, including separation of display, logic, and data layers. It’s designed to be efficient, modular, and extensible, striking a balance between lightweight and fully-featured. Zoop is the granddaddy of PHP frameworks, and as such is very solid. I would recommend Zoop to any experienced PHP programmer looking for a good MVC framework.
Review Coming Soon…
Review Coming Soon…
Seagull is a mature OOP framework for building web, command line and GUI applications. Licensed under BSD, the project allows PHP developers to easily integrate and manage code resources, and build complex applications quickly.
Many popular PHP applications are already seamlessly integrated within the project, as are various templating engines, testing tools and managed library code. If you’re a beginner, the framework provides a number of sample applications that can be customised and extended to suit your needs. If you’re an intermediate or advanced developer, take advantage of Seagull’s best practices , standards and modular codebase to build your applications in record time.
Once your development cycle is complete, use Seagull’s features for deploying and maintaining your apps locally and remotely. Check out the friendly and active Seagull community and see if Seagull’s a good fit for you.
Joomla is considered firstly a CMS, but has been proven to provide a decent framework for PHP development. Current version is 1.5 and has come a long way since the days of Mambo.