PHP to have str_contains()
A function that checks if a string is contained in another string?
That should only take about 25 years.
That should only take about 25 years.
PHP to have str_contains()
A function that checks if a string is contained in another string?
That should only take about 25 years.
That should only take about 25 years.
2020
Nikita Popov joins PhpStorm team
A well-known and long-time contributor to the PHP ecosystem joins JetBrains to work with the PhpStorm team on improving the PHP language and ecosystem.
Nikita Popov joins PhpStorm team
A well-known and long-time contributor to the PHP ecosystem joins JetBrains to work with the PhpStorm team on improving the PHP language and ecosystem.
2019
Zeev Suraski leaves Zend
Zeev Suraski is the second of Zend’s two founders to leave the company. Matthew Weier O’Phinney and Enrico Zimuel also leave.
Zeev Suraski leaves Zend
Zeev Suraski is the second of Zend’s two founders to leave the company. Matthew Weier O’Phinney and Enrico Zimuel also leave.
PSR-15 HTTP Server Request Handlers accepted
The standard lays out how to write request handlers and middleware in PHP.
PSR-15 HTTP Server Request Handlers accepted
The standard lays out how to write request handlers and middleware in PHP.
2018
PHP 7.2
PHP becomes the first programming language with modern cryptography in its standard library thanks to the bundled
libsodium
. It also brings object
typehint and parameter type widening. PHP 7.2
PHP becomes the first programming language with modern cryptography in its standard library thanks to the bundled
libsodium
. It also brings object
typehint and parameter type widening. PSR-11 Container Interface accepted
Standardizes how frameworks and libraries make use of containers to obtain objects and parameters.
PSR-11 Container Interface accepted
Standardizes how frameworks and libraries make use of containers to obtain objects and parameters.
2017
2016
PHP 7.0
A major language renewal comes with the new Zend Engine 3 (PHPNG), numerous improvements and new features. It’s also twice as fast as the previous PHP 5.6 release!
PHP 7.0
A major language renewal comes with the new Zend Engine 3 (PHPNG), numerous improvements and new features. It’s also twice as fast as the previous PHP 5.6 release!
Rogue Wave acquires Zend
Zend, the company that had stood behind the language since PHP 3, is bought out by Rogue Wave.
Rogue Wave acquires Zend
Zend, the company that had stood behind the language since PHP 3, is bought out by Rogue Wave.
PSR-7 HTTP Message Interfaces accepted
The standard finally settled on how to deal with HTTP requests and responses the OOP way.
PSR-7 HTTP Message Interfaces accepted
The standard finally settled on how to deal with HTTP requests and responses the OOP way.
2015
PHP 5.6
This last major PHP 5 release brings constant scalar expressions, the splat
...
operator for variadic functions and argument unpacking, function and constant import with the use
keyword, phpdbg as an integrated debugger, and operator overloading (yep, PHP has it!) for GMP objects. PHP 5.6
This last major PHP 5 release brings constant scalar expressions, the splat
...
operator for variadic functions and argument unpacking, function and constant import with the use
keyword, phpdbg as an integrated debugger, and operator overloading (yep, PHP has it!) for GMP objects. PHP Language Specification
Despite its popularity and considerable age, PHP never had a formal specification until 2014. The specification was initially developed at Facebook and later all copyright was transferred to the public domain worldwide.
PHP Language Specification
Despite its popularity and considerable age, PHP never had a formal specification until 2014. The specification was initially developed at Facebook and later all copyright was transferred to the public domain worldwide.
Facebook introduces Hack
The Hack programming language is born as a PHP dialect and extends PHP with a number of new features. Some of the successful solutions have since made their way into PHP and continue to inspire developers.
Facebook introduces Hack
The Hack programming language is born as a PHP dialect and extends PHP with a number of new features. Some of the successful solutions have since made their way into PHP and continue to inspire developers.
2014
PHP 5.5
Generators and coroutines, the
finally
keyword, and scalar class name resolution via ::class
. The bundled Zend OPcache extension makes opcode caching available and opens the door to more performance optimizations.PHP 5.5
Generators and coroutines, the
finally
keyword, and scalar class name resolution via ::class
. The bundled Zend OPcache extension makes opcode caching available and opens the door to more performance optimizations.Laravel 4
Illuminate, also known as Laravel 4, is re-written from the ground up as a collection of components that integrate with each other to make up a framework. And that’s when the Facades come in.
Laravel 4
Illuminate, also known as Laravel 4, is re-written from the ground up as a collection of components that integrate with each other to make up a framework. And that’s when the Facades come in.
React v0.3
The first public release of ReactPHP proves the async model can be brought into PHP applications. React.js is not yet a thing and is just called “React”.
React v0.3
The first public release of ReactPHP proves the async model can be brought into PHP applications. React.js is not yet a thing and is just called “React”.
2013
PHP The Right Way
The “Right Way” becomes the source of PHP wisdom and best practices for developers all around the world.
PHP The Right Way
The “Right Way” becomes the source of PHP wisdom and best practices for developers all around the world.
PSR-1 and PSR-2 accepted
The tabs vs spaces war is over!
PSR-1 and PSR-2 accepted
The tabs vs spaces war is over!
PHP: a fractal of bad design
The post presents an overview of many PHP problems of the day. Many of them will later be fixed, but PHP haters still refer to the article as a source of truth.
PHP: a fractal of bad design
The post presents an overview of many PHP problems of the day. Many of them will later be fixed, but PHP haters still refer to the article as a source of truth.
PHP 5.4
Traits, shortened array syntax, and built-in webserver for testing purposes come with significant performance improvements, a reduced memory footprint and over 100 fixed bugs.
PHP 5.4
Traits, shortened array syntax, and built-in webserver for testing purposes come with significant performance improvements, a reduced memory footprint and over 100 fixed bugs.
2012
Composer
By 2011, all major languages already have their own package managers: npm, Bundler, pip, NuGet. Coming in last, PHP receives a state-of-the-art package management tool thanks to Jordi Boggiano, Nils Adermann, and other contributors.
OHAI PHP DEVS, Y U NO PACKAGE?
OHAI PHP DEVS, Y U NO PACKAGE?
Composer
By 2011, all major languages already have their own package managers: npm, Bundler, pip, NuGet. Coming in last, PHP receives a state-of-the-art package management tool thanks to Jordi Boggiano, Nils Adermann, and other contributors.
OHAI PHP DEVS, Y U NO PACKAGE?
OHAI PHP DEVS, Y U NO PACKAGE?
Laravel 1
Taylor Otwell creates Laravel as an attempt to provide a more advanced alternative to the CodeIgniter framework. It will go on to revolutionize the entire PHP landscape.
Laravel 1
Taylor Otwell creates Laravel as an attempt to provide a more advanced alternative to the CodeIgniter framework. It will go on to revolutionize the entire PHP landscape.
2011
PSR-0 accepted
After receiving namespaces, PHP finally gets proper autoloading. Before this first PSR standard was accepted, PHP files were an insane mix of includes and requires.
PSR-0 accepted
After receiving namespaces, PHP finally gets proper autoloading. Before this first PSR standard was accepted, PHP files were an insane mix of includes and requires.
PhpStorm 1.0 Released
Previously known under its working name “Web IDE”, PhpStorm is released with support for Xdebug, PHPUnit, and Zend Framework.
PhpStorm 1.0 Released
Previously known under its working name “Web IDE”, PhpStorm is released with support for Xdebug, PHPUnit, and Zend Framework.
2010
PHP-FIG
People from various PHP projects meet at php|tek conference in 2009, and that’s when the idea of PHP-FIG (Framework Interoperability Group) group is born. The FIG’s recommendations, called PSRs, drastically changed the landscape of the PHP ecosystem.
PHP-FIG
People from various PHP projects meet at php|tek conference in 2009, and that’s when the idea of PHP-FIG (Framework Interoperability Group) group is born. The FIG’s recommendations, called PSRs, drastically changed the landscape of the PHP ecosystem.
2009
Xdebug 2.0
Improved stack traces, execution traces to files, code coverage analysis and much improved remote debugging support.
Xdebug 2.0
Improved stack traces, execution traces to files, code coverage analysis and much improved remote debugging support.
ElePHPant – the Furry PHP Mascot
Brought into the world by Damien Seguy based on Vincent Pontier’s design.
ElePHPant – the Furry PHP Mascot
Brought into the world by Damien Seguy based on Vincent Pontier’s design.
2007
PHP 5.2
With a new memory manager for the Zend Engine and new features such as input filtering, JSON and ZIP extensions, tracking file upload progress, and date and time objects, PHP 5.2 was a big success and remained the most popular version until 2013.
PHP 5.2
With a new memory manager for the Zend Engine and new features such as input filtering, JSON and ZIP extensions, tracking file upload progress, and date and time objects, PHP 5.2 was a big success and remained the most popular version until 2013.
Zend Framework initial release
Zend Framework was one of the first frameworks developed as a set of reusable components. It’s goal was “extreme simplicity” and “use-at-will architecture”. Released in 2005, it helped bring PHP into the enterprise market.
Zend Framework initial release
Zend Framework was one of the first frameworks developed as a set of reusable components. It’s goal was “extreme simplicity” and “use-at-will architecture”. Released in 2005, it helped bring PHP into the enterprise market.
CodeIgniter 1
CodeIgniter was one of the first rapid development frameworks. Not only is it alive and popular to this day, it also inspired developers to produce many subsequent frameworks like Laravel, FuelPHP, Kohana, and Yii.
CodeIgniter 1
CodeIgniter was one of the first rapid development frameworks. Not only is it alive and popular to this day, it also inspired developers to produce many subsequent frameworks like Laravel, FuelPHP, Kohana, and Yii.
2006
PHP 5.1
Completely rewritten date handling code with improved timezone support, PDO enabled by default, and significant performance improvements over PHP 5.0.
PHP 5.1
Completely rewritten date handling code with improved timezone support, PDO enabled by default, and significant performance improvements over PHP 5.0.
2005
PRADO version 1
The first framework using PHP 5. Prado was inspired by Apache Tapestry, Borland Delphi, and Microsoft ASP.NET.
PRADO version 1
The first framework using PHP 5. Prado was inspired by Apache Tapestry, Borland Delphi, and Microsoft ASP.NET.
PHP 5.0
Zend Engine II, with a new object model and new extensions (SimpleXML, SOAP, MySQLi, SQLite), greatly improves streams with the ability to access low-level socket operations.
PHP 5.0
Zend Engine II, with a new object model and new extensions (SimpleXML, SOAP, MySQLi, SQLite), greatly improves streams with the ability to access low-level socket operations.
2004
Dmitry Stogov Joined Zend
Dmitry joins Zend and helps develop most of the core PHP subsystems during PHP 5’s life. Later, Dmitry will go on to lead the PHPNG project, which brings the speed of PHP 7 to a new level. Dmitry currently works at Zend by Perforce as a Principal Engineer and leads the development of the JIT compiler for PHP.
Dmitry Stogov Joined Zend
Dmitry joins Zend and helps develop most of the core PHP subsystems during PHP 5’s life. Later, Dmitry will go on to lead the PHPNG project, which brings the speed of PHP 7 to a new level. Dmitry currently works at Zend by Perforce as a Principal Engineer and leads the development of the JIT compiler for PHP.
First Release of WordPress
The most popular CMS in the world first appears as a fork of b2. It used the same file structure as its predecessor, and continued the numbering from its last release, 0.6. Major releases of WordPress are codenamed after well-known jazz musicians, starting from version 1.0. Today, WordPress is used by more than one third of all websites on the internet.
First Release of WordPress
The most popular CMS in the world first appears as a fork of b2. It used the same file structure as its predecessor, and continued the numbering from its last release, 0.6. Major releases of WordPress are codenamed after well-known jazz musicians, starting from version 1.0. Today, WordPress is used by more than one third of all websites on the internet.
2003
PHP Look Back by Derick Rethans
On 11-Feb Erik was wondering if people who “keep telling me PHP is a dead end, it’s in fact a dying language..” are just making it up or not.
Yeah, well, nothing has changed. PHP’s unofficial slogan: Dying since 1995.
PHP Look Back by Derick Rethans
On 11-Feb Erik was wondering if people who “keep telling me PHP is a dead end, it’s in fact a dying language..” are just making it up or not.
Yeah, well, nothing has changed. PHP’s unofficial slogan: Dying since 1995.
2002
Initial commit of PHPUnit
Sebastian Bergmann starts work on the most used PHP testing framework. It was inspired by SUnit and JUnit.
Initial commit of PHPUnit
Sebastian Bergmann starts work on the most used PHP testing framework. It was inspired by SUnit and JUnit.
Smarty released
The best-known templating engine for PHP.
Rasmus realized that he had done something wrong when people started writing template engines for his template engine in his template engine.
Rasmus realized that he had done something wrong when people started writing template engines for his template engine in his template engine.
Smarty released
The best-known templating engine for PHP.
Rasmus realized that he had done something wrong when people started writing template engines for his template engine in his template engine.
Rasmus realized that he had done something wrong when people started writing template engines for his template engine in his template engine.
2001
Initial release of Drupal
Originally written as a message board, Drupal became an open source project in 2001 and grew into one of the most popular CMS systems.
Initial release of Drupal
Originally written as a message board, Drupal became an open source project in 2001 and grew into one of the most popular CMS systems.
PHP 4.0
PHP 4 comes with a brand new “Zend Engine” core developed by Andi and Zeev. In addition to greatly improved performance, PHP 4 included support for more web servers, HTTP sessions, output buffering, and several new language constructs.
PHP 4.0
PHP 4 comes with a brand new “Zend Engine” core developed by Andi and Zeev. In addition to greatly improved performance, PHP 4 included support for more web servers, HTTP sessions, output buffering, and several new language constructs.
2000
Zend company founded
The name Zend is a combination of Suraski’s and Gutmans’ forenames, Zeev and Andi. Zend has been a source of PHP innovations and development ever since its founding. It has contributed core improvements as well as userland packages and frameworks and development environment tooling.
Zend company founded
The name Zend is a combination of Suraski’s and Gutmans’ forenames, Zeev and Andi. Zend has been a source of PHP innovations and development ever since its founding. It has contributed core improvements as well as userland packages and frameworks and development environment tooling.
1999
ElePHPant Logo
Vincent Pontier creates an elePHPant logo for the PHP project, and it has been the adorable mascot of the PHP language ever since.
ElePHPant Logo
Vincent Pontier creates an elePHPant logo for the PHP project, and it has been the adorable mascot of the PHP language ever since.
phpMyAdmin project was “born”
Tobias Ratschiller releases version 0.9.0 of the phpMyAdmin web administration tool for MySQL. For a long time it remained one of the primary tools for accessing MySQL and MySQL-like databases.
phpMyAdmin project was “born”
Tobias Ratschiller releases version 0.9.0 of the phpMyAdmin web administration tool for MySQL. For a long time it remained one of the primary tools for accessing MySQL and MySQL-like databases.
PHP 3.0
PHP 3.0 was the first version that closely resembles PHP as it exists today. Zeev and Andi rewrote the interpreter and introduced a new extension API which makes it a lot easier for the community to contribute new extensions. With many new developers from around the world on board, PHP 3 was announced by the new PHP Development Team.
The language’s name changed to the recursive acronym “PHP: Hypertext Preprocessor”. At its peak, PHP 3 was installed on approximately 10% of all web servers on the Internet.
The language’s name changed to the recursive acronym “PHP: Hypertext Preprocessor”. At its peak, PHP 3 was installed on approximately 10% of all web servers on the Internet.
PHP 3.0
PHP 3.0 was the first version that closely resembles PHP as it exists today. Zeev and Andi rewrote the interpreter and introduced a new extension API which makes it a lot easier for the community to contribute new extensions. With many new developers from around the world on board, PHP 3 was announced by the new PHP Development Team.
The language’s name changed to the recursive acronym “PHP: Hypertext Preprocessor”. At its peak, PHP 3 was installed on approximately 10% of all web servers on the Internet.
The language’s name changed to the recursive acronym “PHP: Hypertext Preprocessor”. At its peak, PHP 3 was installed on approximately 10% of all web servers on the Internet.
1998
Andi Gutmans & Zeev Suraski join the project
Andi Gutmans and Zeev Suraski, students at Technion, Haifa, Israel, need a backend for an eCommerce application they are developing as a university project. They find PHP/FI 2.0 to be inefficient and lacking features. In 1997 they embark on a complete rewrite of the underlying interpreter. They approach Rasmus online to discuss various aspects of his current implementation and their redevelopment of PHP.
Andi Gutmans & Zeev Suraski join the project
Andi Gutmans and Zeev Suraski, students at Technion, Haifa, Israel, need a backend for an eCommerce application they are developing as a university project. They find PHP/FI 2.0 to be inefficient and lacking features. In 1997 they embark on a complete rewrite of the underlying interpreter. They approach Rasmus online to discuss various aspects of his current implementation and their redevelopment of PHP.
1997
PHP/FI
The code gets another complete makeover, and in April of 1996 Rasmus introduces PHP/FI, combining the names of previous releases. This second-generation implementation began the true evolution of PHP from a suite of tools into a programming language in its own right. It included built-in support for DBM, mSQL, and Postgres95 databases, cookies, user-defined function support, and much more.
PHP/FI
The code gets another complete makeover, and in April of 1996 Rasmus introduces PHP/FI, combining the names of previous releases. This second-generation implementation began the true evolution of PHP from a suite of tools into a programming language in its own right. It included built-in support for DBM, mSQL, and Postgres95 databases, cookies, user-defined function support, and much more.
1996
Personal Home Page Construction Kit
Rasmus releases completely rewritten code. Bringing back the PHP name, it is now (briefly) named “Personal Home Page Construction Kit” and is the first release to boast what was considered at the time to be an advanced scripting interface.
The language is deliberately designed to resemble C in structure, making it easy for developers familiar with C, Perl, and similar languages to adopt.
The language is deliberately designed to resemble C in structure, making it easy for developers familiar with C, Perl, and similar languages to adopt.
Personal Home Page Construction Kit
Rasmus releases completely rewritten code. Bringing back the PHP name, it is now (briefly) named “Personal Home Page Construction Kit” and is the first release to boast what was considered at the time to be an advanced scripting interface.
The language is deliberately designed to resemble C in structure, making it easy for developers familiar with C, Perl, and similar languages to adopt.
The language is deliberately designed to resemble C in structure, making it easy for developers familiar with C, Perl, and similar languages to adopt.
PHP Tools – the Birth of PHP
Rasmus releases PHP Tools to the public.
PHP Tools – the Birth of PHP
Rasmus releases PHP Tools to the public.
1995
Rasmus Lerdorf starts working on PHP
The very first incarnation of PHP is a simple set of Common Gateway Interface (CGI) binaries written in the C programming language (not Perl). Originally used for tracking visits to Rasmus Lerdorf’s online resume, he named the suite of scripts “Personal Home Page Tools,” more commonly referenced as “PHP Tools”.
The Timeline data is opensource and available on GitHub. If you found a mistake, please feel free to create a pull-request.
Special thanks
for helping us prepare the timeline go to