How it all began
Around the year 2000 a large number of websites were still built with static HTML-Files. Every little spelling mistake or a missing comma that got discovered at a later point had to be replaced by the developer in the source code and uploaded again by FTP. End users were not able to edit the content of the website directly. A relaunch of the whole website in a new layout was a huge task.
Of course already at that time it was possible to add a little functionality to the website with the help of small PHP-Scripts like Guestbooks or Forums. Even tiny content management scipts (news scripts) were around, which allowed the user to be able to update and edit at least parts of the website dynamically.
The development of more advanced web based applications were usually done as custom programming from scratch. In most cases, these applications had the actual website as a frontend and a custom developed backend. The backend usually was located in an /admin folder directly under the root of the website. All the custom developed administrative functionalities were included in this area and were mainly aimed at giving the website administrator some control over the website and it's data.
Active developers at that time were forced to rewrite the same functionalities again and again for implementing stuff like handling user authentication, shopping carts and some simple tools to handle content. As many different projects or different parts of the same project required the same identical functionalities, developers usually copied and pasted code from one place to the other. To be able to reuse code more efficiently, many developers had already felt the need and started building their own little frameworks.
It was obvious that at that time, there was a huge need for 2 types of systems:
- There was the need for more professional systems to manage the contents of a website more efficiently, so that the editors can manage the Contents of the Website without requiring a technical guy, each time they want to add a comma.
- There was the need for more professional development frameworks, so that developers don’t have to rewrite the same code again and again.
The early days of Professional Content Management
As we have already seen, the basic Idea behind a Content Management System (CMS) is to provide a plattform to create, edit and manage content. This Content can then be used or displayed in a specified structure. For example, as a website. Systems that handle exclusively content for the Internet are sometimes also referred to as Web Content Management System (WCMS). In reality it is today sometimes difficult to really clearly differentiate between WCMS and CMS systems, as in most cases both systems can be used for both scenarios.
In my personal opinion, until today; the strongest existing CMS is TYPO3. Development of TYPO3 began already in 1998. But until 2002, it was a one man show by Kasper Skårhøj. It was only around that time, when this system attracted major public interest. Even other Content Management Systems like Drupal or Mambo had been released as Open Source Software around the same time in 2001.
Not to be misunderstood: TYPO3 and the other applications were not the first Content Management Systems. Even before that, there were already some commercial and proprietary CMS around. As mentioned above, we already had some freely available small News Management Scripts. However, it really changed the world for developers, when at the end of 2001, there was suddenly TYPO3 and a further selection of professional Content Management Systems easily available.
This meant a huge step forward. Very soon, there would hardly be any websites around anymore, which would not allow a normal editor to create and edit content. The separation of Content, Structure and Layout was achieved. Non-Techies, were suddenly able to manage whole websites through Graphical User Interfaces.
Another advantage came up in these early days of publicly available CMS. Functionalities did not have to be embedded anymore as external scripts. Content Management Systems like TYPO3 allowed including Forums, Guestbooks, Shops, etc just with a few mouse clicks.
Already in those early days, it was possible to add your own personal new functionality to TYPO3 by manually creating files and extending classes within the existing TYPO3 filesystem. The next boost happened, when Kasper Skårhøj released TYPO3 Version 3.5b1 in 2002. This Version contained the Extension Manager and turned TYPO3 into a real framework that made it really easy to develop new code and add new functionality to the system. But before we look into this in more detail, let us first see, what the PHP frameworks were doing around that time.
The early days of PHP Frameworks
If developers speak of PHP Frameworks today, they usually refer to frameworks like the ZEND Framework, Symfony, cakePHP or CodeIgniter. In the years 2001 and 2002, when the first Content Management Systems became popular non of these frameworks were available. However, looking at frameworks in a more general way. We can speak of a PHP framework whenever we have a base structure, that provides reusable components for developers to create applications more efficiently.
Besides all the numerous personal frameworks, that developers already used in 2001/2002 to reuse their own code, there was one particular framework that was standing out at that time. The PHP Extension and Application Repository (PEAR) is a framework and distribution system for reusable PHP components that started already in 1999. The idea of PEAR, was to shorten the development process, by providing code for standard functionalities.
PEAR was not the only framework that was popular at that time. Another very popular framework was SMARTY, a templating framework, that provided options to separate content from layout. Even SMARTY was already started in 1999.
It was possible and popular to combine these frameworks. There were some other frameworks available as well. It was nice. It was efficient. Maybe, it was not spectacular yet. However, that was more or less how the use of frameworks in the PHP world started.