Useful software evolves over time in order to adapt to the ever changing
environment and to cope with the ever increasing demands in the real world.
Therefore, useful software becomes increasingly complex over time. This
phenomenon applies to PHP applications as well.
During the early days of PHP, the systems written were fairly simple and
straightforward. In fact, when Rasmus Lerdorf first developed PHP, the objective
was very simple—’Make my life easy with dynamic web applications’. It was a one
person effort to start with. Over a period of time, more and more individuals got
interested in PHP and used it for their own web applications. Their applications
were simple, hardly exceeding 100 PHP scripts and, more often than not, managed
by a single person.
As more people gained interest in PHP, for its simplicity and ease of use, the
number of use cases increased. This resulted in people wanting to do more with
PHP, especially with the rise of the Internet and enterprises looking into using
Internet for business applications. The Novel Applications of the Web 2.0 era also
increased the demand for rich applications on the Web, along with the need for
powerful programming options.
PHP, as a scripting language, has evolved remarkably to meet up to the new
requirements. Therefore, as we all know, PHP became the language of choice
for the majority of complex and interesting applications that are deployed on
the Internet today.
If you look around the Web, some of the most used applications such as Flickr
(http://www.flickr.com/) and Facebook (http://www.facebook.com/) are
PHP-based. Any web hosting solution that is found around the Web today provides
support for PHP. Drupal (http://drupal.org/), Joomla (http://www.joomla.
org/), and WordPress (http://wordpress.org/), the popular content management
systems that are deployed by millions, are all PHP-based.
As the adoption of PHP becomes wider and the use becomes broader, the feature
set and tools continue to expand. At the same time, organizations tend to choose
PHP as the language of choice for complex web applications, because it is battle
tested, hardened over time, and proven to work. Thus, the chances of the software
project you are involved with being PHP-based is very high. Also, the number of
organizations that use PHP-based tools is also high. The following image shows the
popularity of the programming languages (Source: http://www.tiobe.com/index.
The leading programming languages, Java, C, and C++, are very different form PHP.
Java and C++ are used to implement enterprise as well as desktop applications.
Many people still use C to implement systems software such as operating systems.
Even the PHP engine is implemented in C. On the other hand, PHP is popular in a
very different domain, namely Web Programming. As you can see, PHP is the leader
when it comes to web-based programming.
Be it that your software project is using PHP or a tool based on PHP, given the
complexity of today’s software, you need a team of people. In other words, the days
when one person could handle the development of a platform are long gone. Today’s
web applications are much more complex compared to the private home pages. For
example, the PHP-based web application platforms like Flickr are quite complex web
applications that are completely written in PHP. We are also seeing that blogging
web applications are replacing private web sites at a very fast rate, and the blogging
platforms are completely implemented in PHP.
In this chapter, you will learn:
• The need for teams for PHP projects
• How software engineering principles help with PHP projects
• The need for a process for PHP projects
• Dividing the project problem and conquering it
• How patterns help with PHP projects
• Using tools to manage the development and collaboration within
the PHP team