PHP released the first release candidate for PHP 5.3 which means it’s only a matter of time and that will be the latest release of PHP. It’s going to be interesting for us as PHP 5.3 adds features and could potentially break things. There are several extensions that have been moved to PECL which will mean potentially cPanel’s PHP compile system will be broken for a period of time. Some of them are replaced by others which are I assume more supported than their predecessors but it still could break things for users who are using the functions. Then there are changes of handling of deprecated functions which could mean errors for some users. I could see us being a month or two behind on this PHP release as there are just a lot of variables besides PHP itself. Like I said cPanel is one end but also LiteSpeed and it’s support for 5.3 with it’s specialized SAPI (how it communicates with PHP). We also have things like Ioncube and Zend optimizer which should work but you never know. So we’ll end up allowing others to be the guinea pigs on this one and we’ll wait until things seems to be all ironed out. Here’s a run down of the changes:
- Support for namespaces
- Under the hood performance improvements
- Late static binding
- Lambda functions and closures
- Syntax additions: NOWDOC, limited GOTO, ternary short cut “?:” and __callStatic()
- Optional garbage collection for cyclic references
- Optional mysqlnd PHP native replacement for libmysql
- Improved windows support including VC6 and VC9 binaries
- More consistent float rounding
- Deprecation notices are now handle via E_DEPRECATED (part of E_ALL) instead of the E_STRICT error level
- Several enhancements to enable more flexiblity in php.ini (and ini parsing in general)
- New bundled extensions: ext/phar, ext/intl, ext/fileinfo, ext/sqlite3, ext/enchant
- Countless bug fixes and improvements to existing extensions in particular to: ext/openssl, ext/spl and ext/date
This release also drops several extensions and unifies usage of internal APIs. Users should be aware of the following known backwards compatibility breaks:
- Parameter parsing API unification will cause some functions to behave more or less strict when it comes to type juggling
- Removed the following extensions: ext/mhash (see ext/hash), ext/msql, ext/pspell (see ext/enchant), ext/sybase (see ext/sybase_ct)
- Moved the following extensions to PECL: ext/ming, ext/fbsql, ext/ncurses, ext/fdf
- Removed zend.ze1_compatibility_mode
- See the upgrading guide for other minor changes