PHP is a computer programming language originally designed for producing dynamic web pages.[1] The name PHP is a recursive initialism for PHP: Hypertext Preprocessor.
It is over three and a half years ago since PHP 5 has been released. In those three years it has seen many improvements over PHP 4. PHP 5 is fast, stable & production-ready and as PHP 6 is on the way, PHP 4 will be discontinued.
The PHP development team announced that support for PHP 4 has ceased at the end of 2007. After 2007-12-31 there will be no more releases of PHP 4.4. We will continue to make critical security fixes available on a case-by-case basis until 2008-08-08. Please use the rest of this year to make your application suitable to run on PHP 5.
For documentation on migration for PHP 4 to PHP 5, we would like to point you to our migration guide. There is additional information available in the PHP 5.0 to PHP 5.1 and PHP 5.1 to PHP 5.2 migration guides as well.
Well, there are new features and functions with
PHP5. Some of the key
features (from PHP.net's news archive):
* The Zend Engine II with a new object model and dozens of new features.
*
XML support has been completely redone in PHP 5, all extensions are now
focused around the excellent libxml2 library (http://www.xmlsoft.org/).
* A new MySQL extension named MySQLi for developers using MySQL 4.1 and later.
This new extension includes an object-oriented
interface in addition to a traditional interface; as well as support for
many of MySQL's new features, such as prepared statements.
* SQLite has been bundled with PHP. For more information on SQLite (http://sqlite.org/).
* A brand new built-in SOAP extension for interoperability with
Web Services.
* A new SimpleXML extension for easily accessing and manipulating XML as PHP
objects. It can also interface with the DOM extension and vice-versa.
* Streams have been greatly improved, including the ability to access low-level
socket operations on streams.
Overall, though, most things have remained the same. Scripts that are created
to run with PHP4 should
work fine with PHP5 if
you are considering upgrading. However, there are some compatibility issues:
http://hk.php.net/manual/en/migration5.p
List of Backward Incompatible Changes
Between
PHP4 and
PHP5:
http://us3.php.net/manual/en/migration5.
For more information, check out the
PHP4 /
PHP5 migration FAQ:
http://us3.php.net/manual/en/faq.migrati
PHP5 ChangeLog:
http://www.php.net/ChangeLog-5.php
http://www.sourcelabs.com/pdfs/SourceLab
Below are some articles that discuss PHP 5. Keep in mind that most PHP4
scripts will run just fine in PHP 5 and that the new features (most of
which involve OOP) are optional and not required. Also keep in mind
the dates the following articles were written, some are years old.
An interesting look at upcoming PHP5 features. Occasionally updated and
well organized:
*
http://www.phpvolcano.com/articles/php5/
Some official PHP 5 docs exist on OOP:
*
http://www.php.net/manual/en/language.oop5.php
To see facts and examples on what changed or was added in the second
Zend Engine (the engine that powers PHP 5) read ZEND_CHANGES or the
prettier (and more up-to-date) php.net equivelent here:
*
http://www.php.net/zend-engine-2.php
*
http://www.zend.com/php5/andi-book-excerpt.php
*
http://cvs.php.net/co.php/ZendEngine2/ZEND_CHANGES
A list of PHP5 related articles from zend.com, and the PHP5 Feature
Spotlight that lists Zend.com articles/tutorials specific to PHP5:
*
http://www.zend.com/zend/future.php
* http://www.zend.com/php5/
* http://www.zend.com/zend/php5/
Also the PHP manual has an appendix titled "Migration from PHP 4 to
PHP 5" that can be seen here:
*
http://www.php.net/manual/en/migration5.php
PHP5 Panic. Tries to calm down peoples fears, like the fear that PHP is
just becoming

*
http://www.phppatterns.com/index.php/article/articleview/44/1/3/
A German article on how to get your PHP 4 scripts working in PHP 5:
*
http://www.php-resource.de/forum/showthread.php?threadid=42717
A PHP magazine article titled: Zend Engine 2 - Internals Exposed
*
http://php-mag.net/itr/online_artikel/psecom,id,382,nodeid,114.html
A PHP5 Introduction slideshow:
*
http://ny1.php.net/talks/show.php/php5intro
Another talk/slideshow, this on OOP for PHP Application Servers:
*
http://www.sebastian-bergmann.de/talks/adam-2003-oop.pdf
Yet another talk presentation on PHP 5:
*
http://www.derickrethans.nl/files/nluug.pdf
A little Zend Engine 2 Q&A:
*
http://www.zend.com/php/ask_experts.php
Interview with Sterling Hughes on PHP 5:
*
http://www.php-con.com/2003/east/interviews/hughes.php
An introduction to PHP5. Also sift through the user comments for
related discussion as this column is a bit dated:
*
http://www.phpbuilder.com/columns/argerich20030411.php3
The original ZE2 (PHP5) proposal. A little dated and changes have been
made but nonetheless still full of interesting information:
*
http://www.zend.com/engine2/ZendEngine-2.0.pdf
And various other conference presensentations and talks with a few
being PHP5 related:
* http://talks.php.net/
Other notes to keep in mind:
- There is a PHP5 php.ini directive that puts PHP5 into PHP4
compatibility mode. In otherwords, your PHP4 scripts
will for
sure [most likely] work.
This directive is called: zend.ze1_compatibility_mode
- PHP5 will become stable near the middle to end of 2004 but being
that it's a moving target it's hard to say for sure.
For now
you may download it from here:
http://www.faqts.com/knowledge_base/view.phtml/aid/22153/fid/1150
- Many articles refer to namespaces being available in PHP5. As of
around June 2003 this is no longer true as they were removed.
If
it's figured out how to implement them nicely then they will
be put
back...
- There is no "official" or seperate PHP 5 manual. There is one
manual that has both PHP 4 and PHP 5 (and PHP 3) information.
This is because most information is identical with both
versions.
PHP 5 specific information may be noted as such some time in
the
future.
- MySQL support. There has been some confusion with regards to the
disabling of MySQL by default in PHP 5. This simply
means that in
order to use MySQL you must explictly use --with-mysql just
like
you do with most every other extension. Also, the
client libraries
are no longer bundled, this means you must use your MySQL
sources
instead of optionally using the version that comes with PHP
4.
People can still use --with-mysql[=DIR], this move isn't a
big deal.
The reason for this action is three-fold:
- MySQL 3 (which is bundled in PHP 4) : This
bundled library
was no longer properly maintained.
- MySQL 4 (never bundled) : Is GPL, so doesn't
fit with the PHP
license.
- PHP is attempting to bundle less third party
libraries.
- Also listed in the following faq:
http://php.net/manual/faq.databases.php#faq.databases.mysql.php5
