Today's web developer must be well-equipped in order to fully harness the enormous horsepower and features at his disposal, not to mention satisfy the tastes of an increasingly finicky user. While taking advantage of a powerful development environment such as NetBeans or PDT certainly helps, it's also imperative to embrace sound practices that ensure high quality, testable code written with a minimum investment of time and effort.
Because these challenges are universally faced among the web development community, several projects known as frameworks have gained a considerable following thanks to their ability to abstract away commonplace tasks such as data validation and database and web services integration, not to mention SEO, template management, and a testing.
In this article, I'll introduce you to five frameworks that are transforming the way today's PHP developers go about building web sites. If you haven't yet explored framework-based development, I invite you to use this list as a starting point for learning more about what's possible. Rather than simply list the five frameworks that have managed to gain the most mindshare amongst the PHP community, I instead try to highlight at least one feature that differentiates each framework from the other solutions.
In many ways, CakePHP acted as the trailblazer for modern framework development within the PHP community, with the project founded back in 2005 on the heels of Ruby on Rails. In fact, having borrowed many of Rails' most compelling features, CakePHP is often erroneously referred to as "Rails for PHP," despite the project having long since taken on a life of its own.
One of CakePHP's most powerful advantages is a lively community who actively contribute not only tutorials, components, and other features through the Bakery, but also open source CakePHP-based projects through the Cake Forge, which as of this date hosts more than 240 open source applications. Sporting an impressive portfolio of deployments, among them The Miss Universe Pageant, MIT's Scratch
Program, and The Mozilla Foundation's enormous Firefox Add-ons site, CakePHP is clearly worth considering no matter how ambitious your project may be.
Of the five frameworks introduced in this article, none hails from a more interesting background than CodeIgniter. With the first version dubbed "pMachine" back in 2001 by creator Rick Ellis, the software was first put to use powering none other than Nancy Sinatra's web site. Subsequently redubbed CodeIgniter in 2006, the framework is now used as the foundation for the popular ExpressionEngine content management system.
With both the CodeIgniter and ExpressionEngine projects fostered by Ellis' namesake company EllisLab, the CodeIgniter team seem to have taken a particularly practical approach to framework development. Stressing a simple templating paradigm and practical native features such as shopping cart, benchmarking, email, database, and image manipulation classes, CodeIgniter is a no-nonsense framework solution capable of accomplishing great things with little fanfare.
In what has clearly become a crowded space, any emerging framework would have to differentiate itself in some significant way in order to stand out among the competition. The DooPHP developers are clearly cognizant of the need for a bold marketing message, proclaiming DooPHP to be "one of the fastest, if not the fastest PHP framework available." To support these claims, they've even posted a benchmark comparing DooPHP performance with several other frameworks, CakePHP and CodeIgniter included.
Perusing the DooPHP documentation, it's clear that performance is a foremost goal, with the code required to create a basic web site supporting central configuration, database integration, custom routing, and templatesall incredibly compact yet easy to understand. Check out the well-written Definitive Guide to DooPHP for a concise introduction to the framework's basic features. In fact, DooPHP's particular approach seems remarkably well suited to developers having experience with the Zend Framework, making it a worthy candidate for Zend Framework users who are looking for a lightweight alternative for specific projects.
Along with CakePHP Symfony is one of the PHP community's elder framework projects, having been founded by an enterprising French developer named Fabien Potencier back in October 2005. These days, it powers thousands of web sites around the globe, including the enormous Delicious social bookmarking application.
Symfony's particular strength lies in the project management team's incredibly well-organized support initiatives, led by the project's corporate foster Sensio Labs. In addition to an annual conference, Sensio offers regular training sessions, and a series of open source books. Coupled with an abundance of documentation and a community that has contributed thousands of plugins, Symfony users won't be left wanting in terms of understanding and extending this framework.
The Zend Framework
Like all of the frameworks discussed in this article, the Zend Framework is packed with the standard features one would expect in a framework, such as data validation, database integration, and user authentication. However, this particular solution is unique in that it places the most emphasis on facilitating connectivity with a wide variety of web services, among them the Amazon Web Services API, Amazon's EC2 and S3 services, Twitter, Windows Azure and Yahoo.
Further, the Zend Framework enjoys the backing of a particularly large corporate namesake sponsor, namely Zend Technologies. While the development process is no less open than other community-driven framework projects, this relationship does afford the Zend Framework project some additional benefits thanks to Zend Technologies' corporate resources and partnerships with companies such as Microsoft, who recently contributed a Windows Azure component to the project. Another interesting recent development was the collaboration with Deutsche Telekom to produce the Developer Garden component, which gives developers the ability to use the Deutsche Telekom network to perform telephony tasks such as sending SMS messages and establishing voice-based calls.
PHP Development in the Fast Lane
In many ways, the web of the 1990's resembled the early 20th century automobile industry; HTML was the combustible engine of the day and anybody who could write enough code to display pictures of the family cat was hailed as the second coming of Henry Ford. Yet just as the automobile grew in complexity over the next 100 years, adding larger engines, safety features, advanced braking systems, and even televisions, so has the web. Although the latter's advances have proceeded much, much faster. Yet if you start exploring the opportunities made available by embracing framework-based PHP development, I guarantee you'll feel more like Michael Schumacher with each passing day!