PHP 6: Features, Release Date, Hosting and Download

This article covers PHP 6, including the status of its development, features, release date and download. There’s a section on each topic below. Links to PHP downloads and source code are included.

I’ve updated this article to include the effects of the release of PHP 5.4 and the timelines of the new PHP release process.

PHP 6′s Status

Several books have already been written and published about PHP 6, such as Professional PHP6 by Edward Lecky-Thompson & Steven Nowicki. Despite this, PHP6 does not exist yet. There is no PHP 6 beta or even alpha. PHP 6 does not exist.

To see that PHP 6 doesn’t exist yet, see PHP’s official Subversion page. Subversion, or svn, is the source code control software used for the development of PHP. There are instructions for getting the code for PHP 5.3 or 5.4, but not for any newer version:

PHP 5.3: svn checkout http://svn.php.net/repository/php/php-src/branches/PHP_5_3 php-src-5.3
PHP 5.4: svn checkout https://svn.php.net/repository/php/php-src/branches/PHP_5_4 php-src-5.4

As you can see here from the branches in the PHP source code the newest branch is PHP_5_3:

  FIRST_UNICODE_IMPLEMENTATION/	 296285	 16 months	 derick	 - Committing my session cookie patch; it's a bug fix and good to have in the h…
...
  PHP_4_4/	 295390	 16 months	 derick	 - Set-up externals for the Zend engine so 4.4 can at least be build from SVN a…
  PHP_5_0/	 284180	 2 years	 gwynne	 one more attempt at ridding us of some of those annoying mime types
  PHP_5_1/	 284180	 2 years	 gwynne	 one more attempt at ridding us of some of those annoying mime types
  PHP_5_2/	 311125	 2 months	 dmitry	 Fixed crash on recursive error handler invocation
  PHP_5_2_WITH_DRCP/	 284180	 2 years	 gwynne	 one more attempt at ridding us of some of those annoying mime types
  PHP_5_3/	 313616	 31 hours	 scottmac	 When we have a blocking SSL socket, respect the timeout option. reading from SS…
  PHP_5_4/	 313646	 3 hours	 stas	 No E_STRICT in production

(Older code branches omitted for brevity.)

There’s no PHP 6 code branch yet. Notice the FIRST_UNICODE_IMPLEMENTATION branch – the story behind this code branch, and why it delayed PHP 6 follows.

What does exist is an official todo for PHP 6, authored by Andrei Zmievski, which includes a rough list of PHP 6 features in the PHP Wiki.

UPDATE 21 July 2011: Now the PHP 5.4 Alpha has been released, a PHP 6 branch may exist for PHP’s developers without showing up on PHP’s public subversion. The code for PHP 5.4 did not show up on the sites above until the PHP 5.4 Alpha was released.

Reasons for Delays to PHP 6

The reasons for the delay to PHP 6 appear to be:

  1. Issues with Unicode support: The development team initially decided to use UTF-16 internally in PHP 6. This causes double memory usage for strings, more CPU usage and increased complexity of coding PHP 6. Using UTF-16 apparently took a lot of fun out of developing PHP, caused tension amongst PHP’s developers and slowed development. The choice to use UTF-16 was aborted by Rasmus Lerdorf, creator of PHP, in 2010. The developers restarted the Unicode implementation.
  2. PHP 5.3 took some PHP 6 features: PHP 5.3 included many of the features slated as desirable for PHP 6. This removed a lot of momentum for PHP 6.
  3. High Hopes: PHP 6 is a major version number change. It’s possible in a major release to make significant changes, including making breaks from the past. Agreeing and delivering major changes can take some time.
  4. Feature Set Not Finalized: Agreement hasn’t been reached on the features in PHP 6.0.
  5. Lack of Urgency: PHP works very well. There are no burning issues forcing the release of PHP 6.
  6. PHP 5.4 takes some PHP 6 features: Rasmus Lerdorf previously stated, when he scrapped PHP 6′s original Unicode implementation, that there may be a PHP 5.4 yet, or PHP may go straight to version 6. Jani Taskinen created a PHP 5.4 development branch on 11 March 2010, but this appears to be due to frustration as being able to move PHP’s development forward. The PHP 5.4 code branch is no longer there. There is however an official PHP 5.4 todo wiki, with Stanislav Malyshev as the tentative release manager. So it looks there will be PHP 5.4, which would push out the PHP 6.0 release further. UPDATE on 24 July 2011: The PHP 5.4 Alpha has been released, and it includes some features originally targeted for PHP 6.0, such as traits and the removal of register_globals and safe_mode.

PHP 6 Features

The likely set of PHP6 features is:

  1. Internationalization: Native Unicode – UTF-8 – to the core (strings, APIs).
  2. Performance: Page level (opcode) caching through moving Alternative PHP Cache (APC) into the PHP core. Native application caching.
  3. Break to label: Sending a break to a label (like a goto).
  4. Enhanced array indexing: Array indexing can be used to substring or take an array slice.
  5. Removed features: Magic quotes will be removed.

The are quite a few more minor features and changes in PHP 6.

PHP 6 Download

You cannot download PHP 6 yet. There is no PHP6 download available. When a PHP 6 download becomes available I will post the download link here.

The current production release of PHP is 5.3.6. PHP 5.3 can be downloaded from php.net/downloads.php.

An alpha version of PHP 5.4 is also available.

Once the PHP 6 alpha is released, snapshots of the development code will likely become available from snaps.php.net.

PHP 6 Release Date

There is no PHP6 release date set. PHP 5.4 is only just being released now.

There is a PHP release process which has been accepted by a team vote. The release process stipulates:

Beginning on June 28th, 2011, the PHP Group began following a timeline for when new versions of PHP will be released. [33] Under this timeline, at least one release should occur every month. Every one year, a minor release should occur which can include new features.
(Source: “PHP” on  Wikipedia.)

This means minor releases, such as PHP 5.4 to PHP 5.5 are now scheduled yearly. The timeline shown in the PHP release process also shows the PHP 6 release occurring in sync with this one year cycle.

Given the PHP 5.4 release is expected on 27 July 2011, the most likely date for the production PHP 6 release is one year after the PHP 5.4 release: late July or early August 2012.

If the PHP team do decide to release PHP 6 in 2012 (rather than just PHP 5.5) according to the release process we’d expect to see the first PHP 6 alpha in June 2012.

PHP 6 Hosting

People are already looking for PHP 6 hosting. As PHP 6 doesn’t exist, there are no PHP 6 hosting providers yet.

PHP is the defacto website programming language provided by web hosting companies. Some web hosting companies will be eager to provide an option for PHP 6 shortly after its release to be on the “cutting edge”.

PHP 6 will become more widely available as the popular hosting control panel vendors, such as cPanel and Plesk built in PHP 6 support.

If you have a virtual private server or a dedicated server, you will of course be able to install PHP 6 yourself.

References

  1. What is the Holdup on PHP 6?
  2. Resetting PHP 6
  3. PHP 6 Features
  4. Prepare for PHP 6

Comments

Something to add? Comments, questions, feedback, more information – please comment below.

Tagged , . Bookmark the permalink.

10 Responses to PHP 6: Features, Release Date, Hosting and Download

  1. Tyrael says:

    there is now php 6 per see.
    it was, but the developer team decided to drop it, as the development halted.
    they created a new branch from 5.2, integrated everything which was ready, and released it as 5.3.
    after that, they started developing the next version before even deciding what version should that be.
    it ended up as 5.4, and it is still not decided what will be the next minor/major version.
    maybe version 6 will be skipped altogether to avoid the possible confusion, as this version 6 wouldn’t be the same as it was advertized before.
    the 5_4 branch is there for some time now, it was there before alpha, only the 5_4 tag (in /tags/) was missing, as branches are used for tracking the development (when a new version is started, the trunk is branched into a new version branch) and the tags are used to tag a specific release (be that alpha, beta, rc or stable).
    there is no private branch, the development is open and everything is under http://svn.php.net

    Tyrael

    • Tasman Hayes says:

      Tyrael,

      Thanks for taking the time to explain the history. I’ll take you as a good source of information, since you have commit access to the PHP source tree. :-D

      So, if I understand you correctly:

      1. PHP 6 was based on PHP 5.2.
      2. When development on PHP 6 was aborted, everything that had been developed for PHP 6 and was ready was released as PHP 5.3.
      3. After PHP 5.3 was released, development of the next PHP version was started without deciding what the version number. That version became PHP 5.4.
      4. Development for PHP is completely open, and the latest (committed) development source code updates is viewable at http://svn.php.net. Version 5.4 has been visible in SVN branches for sometime now (specifically at http://svn.php.net/viewvc/php/php-src/branches/).
      5. Version 6 may be skipped to avoid confusion.

      Let me know if I misunderstood anything.

      Thanks!
      -Taz.

      p.s. I liked your blog post on performance of error handling in PHP. I’d just begun to frequently use the ‘@’ error suppression operator to avoid PHP notices where I deliberately use uninitialized array members. For example, when I’m counting how many network links use different technologies (DSL, Ethernet Over Copper, Metro-Ethernet, Microwave) at an ISP:

      foreach ($links as $link) {
          @$seen[$link->tech]++;
      }
      

      With ‘@’, I can avoid code to initialise the array members, making the code simpler. I didn’t know that using the ‘@’ operator could be a bad habit to get into because of the performance penalty. Thanks!

  2. Tyrael says:

    yeah, you understood all well.
    now that you mentioned it, I repeated my test with php 5.4, as it was some improvements with about the error suppression operator:
    https://www.tyrael.hu/2011/10/09/error-suppression-improvements-with-php-5-4/
    it doesn’t really change the previous facts, having the suppression isn’t really adds much overhead, but having errors or calling your custom error handler still slow.

    Tyrael

  3. nix says:

    Something I hope to see in PHP6: change of namespace symbol, standardlize symbol for object, static, namespace ..

  4. gmadar says:

    Is it me or the PHP 6 Features doesn’t seems so important? I mean – for a major release I would expect more..

  5. At least mysqlnd (native driver) is announced, meaning faster execution, lower memory usage, performance statistics and client side cache (not ready for 5.3). And, for me as a developer on many different servers (including shared hosts) it’s a nice thing crapy stuff like register globals, magic quotes, safe mode and ereg is removed from the core. For me, this would be a nice version to work with..

  6. Thanks for the great post here, i hope PHP6 will be relly perfomet for multi-threads!

    today i use Python and Shell scripting for sommen work becures PHP its to slow to handle the problems, but i hobe soe much PHP6 will support a lot of nice featuers, i will follow you blog and hobe you find more good stuff ^^

  7. Pingback: PHP « Paano ito?

  8. Garardo says:

    good to know, i am starting to learn and suddenly i saw the book u cited and went like… wait if i am gonna learn why not instead of 5.3 be it PHP6… and as i started to search i came up to this and gotta say it relieves me…

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>