PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ?? March 2004, PHP 5 Release Candidate 1 - Upgraded bundled oniguruma library to version 2.2.2. (Rui, Moriyoshi) - Renamed php.ini option "zend2.implicit_clone" to "zend.ze1_compatibility_mode" as it doesn't only affect implicit cloning. (Andi, Zeev) - Methods that override parent methods are now subject to prototype checking, and have to be compatible with the method they're overriding - this check is disabled in compatibility mode. (Andi, Zeev) - Fixed crash with foreach() and temporary objects($obj->method()->a ...) where method returns a non-referenced object. (Andi, Zeev) - Fixed problem preventing startup errors from being displayed. (Marcus) - Fixed start-up problem if both SPL and SimpleXML were enabled. The double initialization of apache 1.3 was causing problems here. (Marcus, Derick) - Fixed bug #27237 (Working with simplexml crashes apache2). (Rob) - Fixed bug #27227 (Mixed case class names causes Fatal Error in Constructor call). (Marcus) - Fixed bug #26677 (mbstring compile errors with IRIX compiler). (K.Kosako , Rui, Moriyoshi) 12 Feb 2004, PHP 5 Beta 4 - Changed exceptions so that they must now inherit from the built-in Exception class. This allows for a general catch(Exception $e) statement to catch all exceptions. (Andi, Zeev) - Added SPL extension. (Marcus, Derick) - Added checks for invalid characters in a cookie name and cookie data into set[raw]cookie(). (Brian) - Added support for ++ and += (and similar) to SimpleXML. (Andi, Zeev) - Added infrastructure for ++ and += (and similar) to object overloading modules. (Andi, Zeev) - Added error message when trying to re-assign to $this variable. (Zeev, Andi) - Added support for an interface to extend another interface. (Zeev) - Added new pspell functions: (Brian) . pspell_config_dict_dir() . pspell_config_data_dir() - Added new Interbase functions: (Ard) . ibase_service_attach() and ibase_service_detach(). . ibase_backup() and ibase_restore(). . ibase_maintain_db(), ibase_db_info() and ibase_server_info(). - Added context option "http"/"request_fulluri" to send entire URI in request which is required format for some proxies. (Sara) - Added optional third parameter 'strict' to array_keys(). (Andrey) - Added stream_lock() method to userspace streams interface. (Hartmut, Wez) - Added xsltprocessor->registerPHPFunctions(). (Christian) - Readded support for using classes before they are declared according to the behavior in PHP 4. This won't work with classes who are using PHP 5 features such as interfaces. (Zeev, Andi) - Completely overhauled SimpleXML extension. (Marcus, Rob, Sterling) - Upgraded bundled SQLite library to version 2.8.11. (Ilia, Wez) - Improved destructor implementation to always call destructors on clean shutdown. An order of destruction is not guaranteed. (Zeev, Andi) - Redesigned exception support. This fixes many bugs in the previous design such as nested try's and problems with overloaded extensions. (Zeev, Andi) - Redesigned clone by adding a clone keyword (clone $obj) and copying all properties before __clone() is called. Also allows calling parent __clone function by using parent::__clone(). (Zeev, Andi) - Fixed interfaces to check for function return-by-reference equality when inheriting and implementing interfaces. (Andi, Zeev) - Fixed foreach() to respect property visibility. (Marcus) - Fixed problem with parse error in include() file not stopping PHP's execution. (Ilia) - Fixed var_export() to show public, protected and private modifiers properly. (Derick) - Fixed problems with longlong values in mysqli. (Georg) - Fixed class name case preserving of user defined classes. (Marcus) - Fixed bug #27145 (Unmangle private/protected property names before printing them inside error messages). (Ilia) - Fixed bug #27103 (preg_split('//u') incorrectly splits UTF-8 strings into octets). (Moriyoshi) - Fixed bug #27042 (SPL: SeekableIterator seek() broken). (Marcus) - Fixed bug #27008 (Every class method can be called as static). (Marcus) - Fixed bug #26938 (exec() has problems reading long lines). (Ilia, runekl[at]opoint[dot]com - Fixed bug #26947 (ext/dom: Crash when using DomDocument::getElementById()). (Christian) - Fixed bug #26911 (crash in sqlite extension when fetching data from empty queries). (Ilia) - Fixed bug #26844 (ext/mime_magic: magic file validation broken). (Jani) - Fixed bug #26819 (http_build_query() crashes on NULL output). (Ilia) - Fixed bug #26817 (http_build_query() does not handle private & protected object properties correctly). (Ilia) - Fixed bug #26815 (foreach of (DOM) childnodes crashes when Xinclude is used). (Rob) - Fixed bug #26796 (SQLite causes crashes with other extensions *connect() calls). (Marcus) - Fixed bug #26762 (unserialize() produces lowercase classnames). (Marcus) - Fixed bug #26743 (getElementsByTagName doesn't work properly). (Rob) - Fixed bug #26736 (__autoload not invoked for parent classes). (Marcus) - Fixed bug #26723 (domNode::appendChild() changes child node namespace). (Rob) - Fixed bug #26697 (calling class_exists() on a nonexistent class in __autoload results in segfault). (Marcus) - Fixed bug #26696 (string index in a switch() crashes with multiple matches). (Andi) - Fixed bug #26695 (Reflection API does not recognize mixed-case class hints). (Marcus) - Fixed bug #26690 (make xsltProcessor->transformToUri use streams wrappers). (Ilia) - Fixed bug #26680 (Added version check in mysqli_report_index). (Georg) - Fixed bug #26675 (Segfault on ArrayAccess use). (Marcus) - Fixed bug #26640 (__autoload() not invoked by Reflection classes). (Jani) - Fixed bug #26543 (call_user_func() broken for self, parent). (Stanislav) - Fixed bug #26077 (memory leak when new() result is not assigned and no constructor is defined). (Stanislav) - Fixed bug #26065 (Crash when nesting classes). (Marcus) - Fixed bug #25816 (disallow arrays in class constants). (Stanislav) - Fixed bug #25329 (sqlite_create_function with method and reference to $this). (Marcus) - Fixed bug #25038 (call_user_func() issues a warning if function throws an exception). (Marcus) - Fixed bug #24608 (__set not triggered when overloading with array). (Stanislav) - Fixed bug #24243 (enabling browscap causes segfault). (Wez) 21 Dec 2003, PHP 5 Beta 3 - Bundled new tidy extension (John, Wez) - Upgraded PCRE library to version 4.5. (Andrei) - Dropped Windows 95 support. (Andi) - Moved extensions to PECL: . ext/crack (Jani, Derick) . ext/db (Jani, Derick) . ext/mcal (Jani, Derick) . ext/qtdom (Jani, Derick) . ext/notes (Wez) - Added 'c' modifier to date() which returns the date in the ISO 8601 format. (Derick, Manuzhai) - Added an optional parameter to microtime() to get the time as float. (Andrey) - Added MacRoman encoding support to htmlentities(). (Derick, Marcus Bointon) - Added possibility to call PHP functions as XSLT-functions. (Christian) - Added possibility to prevent PHP from registering variables when input filter support is used. (Derick) - Added iconv stream filter (convert.iconv.*). (Moriyoshi) - Added EXSLT support in ext/xsl. (Christian) - Added qdbm handler for dba extension. (mg at iceni dot pl, Marcus) - Added new functions: . dba_key_split() to split inifile keys in an array. (Marcus) . time_nanosleep() signal safe sleep (Magnus, Ilia) . headers_list(). (Sara) . php_strip_whitespace(). strip whitespace & comments from a script. (Ilia) . php_check_syntax(). check php script for parse errors. (Ilia) . image_type_to_extension(). return extension based on image type. (Ilia) . stream_socket_sendto() and stream_socket_recvfrom(). (Wez) . iconv_mime_decode_headers(). (Moriyoshi) . get_declared_interfaces(). (Andrey, Marcus) . sqlite_fetch_column_types(). (Ilia) - Added proxy support to http:// wrapper. (Sara) - Added rename(), rmdir() and mkdir() support to userstreams. (Sara) - Added rename(), rmdir() and mkdir() support to ftp:// wrapper. (Sara) - Changed rename(), rmdir() and mkdir() to be routed via streams API. (Sara) - Changed stat() and family to be routed via streams API. (Sara) - Fixed include_once() / require_once() on Windows to honor case-insensitivity of files. (Andi) - Fixed get_declared_classes() to return only classes. (Andrey, Marcus) - Fixed __autoload() to preserve case of the passed class name. (Andi) - Fixed bug #26615 () (runekl at opoint dot com, Derick) - Fixed bug #26591 ("__autoload threw an exception" during an uncaught). (Marcus) - Fixed bug #26534 (stream_get_meta_data() -> Access Violation). (Wez) - Fixed bug #26528 (HTML entities are not being decoded by xml_parse()/xml_parse_into_struct()). (Ilia) - Fixed bug #26182 (Object properties created redundantly). (Andi) - Fixed bug #26156 (REPLACE_ZVAL_VALUE works on uninit stack-based zvals). (Moriyoshi) - Fixed bug #26083 (Non-working write support in ext/dom). (Ilia) - Fixed bug #26072 (--disable-libxml does not work). (Jani) - Fixed bug #26001 (serialize crashes when accessing an overloaded object that has no properties (NULL hashtable)). (Wez) - Fixed bug #25664 (COM crashes when calling a Delphi implementations of ITypeInfo). (Wez) - Fixed bug #24837 (Incorrect behaviour of PPP using foreach). (Marcus) - Fixed bug #24693 (Allow session.use_trans_sid to be enabled/disabled from inside the script). (Ilia) - Fixed bug #24394 (Serializing cross-referenced objects causes segfault). (Moriyoshi) 30 Oct 2003, PHP 5 Beta 2 - Lots and lots of changes in the Zend Engine 2 since beta 1: . Added Iterators . Improved memory manager . Added Reflection API . Removed the not so working namespaces support . Removed support for expressions within constant declarations. . You can read about most changes in ZEND_CHANGES under the Zend directory. - Improved the DBX extension: (Marc) . Added DBX_RESULT_UNBUFFERED flag for dbx_query(). . Added dbx_fetch_row() . Added SQLite support. - Improved the Interbase extension: (Ard Biesheuvel) . Added support for multiple databases into ibase_trans() . Added support for CREATE DATABASE, SET TRANSACTION and EXECUTE PROCEDURE statements into ibase_query() . Added ability to bind PHP arrays to native Interbase arrays . Added ibase_commit_ret() and ibase_rollback_ret() . Added ibase_drop_db() . Added ibase_gen_id() . Added ibase_name_result() . Added ibase_errcode() . Added ibase_affected_rows() and ibase_num_params() . Added ibase_param_info() . Added ibase_wait_event() . Added ibase_set_event_handler() and ibase_free_event_handler() - Added new COM extension with integrated .Net support. (Wez) - Added new functions: . setrawcookie(). (Brian) . pg_version(). (Marcus) . dbase_get_header_info(). (Zak) . snmp_read_mib(). (Jani) . http_build_query(). (Sara) . ftp_alloc(). (Sara) . array_udiff(). (Andrey) . array_udiff_assoc(). (Andrey) . array_udiff_uassoc(). (Andrey) . array_diff_uassoc(). (Andrey) . convert_uuencode(). (Ilia) . convert_uudecode(). (Ilia) . substr_compare(). (Ilia) . pcntl_wait(). (GeorgeS) - Added "resume_pos" context option to "ftp://" wrapper. (Sara) - Added optional parameter to OCIWriteTemporaryLob() to specify the type of LOB (Patch by Novicky Marek ). (Thies) - Added reflection API. (Andrei, George, Timm) - Changed length parameter in fgetcsv() to be optional. (Moriyoshi) - Fixed IPv6 support in MacOSX Panther. (Dan, Marko) - Fixed fgetcsv() to correctly handle international (non-ascii) characters. (Moriyoshi) - Fixed support for fields within XML documents in ext/xml. (Sterling) - Fixed visibility of __construct and __clone. (Marcus) - Fixed bug #25756 (SimpleXML's validate_schema_file() broken). (Moriyoshi) - Fixed bug #25581 (getimagesize() returns incorrect values on bitmap (os2) files). (Marcus) - Fixed bug #25494 (array_merge*() allows non-arrays as argument). (Jay) - Fixed bug #24766 (strange result array from unpack()). (Moriyoshi) - Fixed bug #24729 ($obj = new $className; causes crash when $className is not set). (Marcus) - Fixed bug #24565 (cannot read array elements received via $_REQUEST). (Zeev) - Fixed bug #24445 (get_parent_class() returns different values). (Sterling, Stanislav) - Fixed bug #24403 (preg_replace() problem: Using $this when not in object context). (Zeev) - Fixed bug #24399 (PEAR DB isError crash [instanceof_function fault?]). (Sterling, Marcus) - Fixed bug #24396 (foreach ($k=>$v), the key $k is missing). (Zeev) - Fixed bug #24279 (__get() crash when no value is returned). (Ilia) - Fixed bug #22367 (undefined variable has a value). (Zeev) - Fixed bug #19859 (allow fast_call_user_function to support __call). (Stanislav) - Fixed bug #17997 (Warning when switch() and reference are combined). (Zeev) - Fixed bug #17988 (strtotime failed to parse postgresql timestamp). (Derick) 29 Jun 2003, PHP 5 Beta 1 - Removed the bundled MySQL client library. (Sterling) - Switched to Zend Engine 2, which includes numerous engine level improvements. A full list is available at http://www.php.net/zend-engine-2.php. - Added SQLite (http://www.hwaci.com/sw/sqlite/) extension: (Wez, Marcus, Tal) . Includes bundled SQLite library . Enabled by default - Completely Overhauled XML support: . New simplexml extension. (Sterling) . New DOM extension. (Rob, Chregu, Marcus) . New XSL extension. (Chregu, Rob) . Moved the old DOM-XML and XSLT extensions to PECL. (James, Sterling) . ext/xml can now use either libxml2 or expat to parse XML. (Sterling) . Removed bundled expat library. (Jani) - New php.ini options: . "session.hash_function" and "session.hash_bits_per_character". (Sascha) . "mail.force_extra_paramaters". (Derick) . "register_long_arrays". (Zeev) - Improved the speed of internal functions that use callbacks by 40% due to a new internal fast_call_user_function() function. (Sterling) - Improved the streams support: (Wez) . Improved performance of readfile(), fpassthru() and some internal streams operations under Win32. . stream_socket_client() - similar to fsockopen(), but more powerful. . stream_socket_server() - Creates a server socket. . stream_socket_accept() - Accept a client connection. . stream_socket_get_name() - Get local or remote name of socket. . stream_copy_to_stream() . stream_get_line() - Reads either the specified number of bytes or until the ending string is found. (Ilia) . Added context property to userspace streams object. (Sara) . Added generic crypto interface for streams. (supports dynamic loading of OpenSSL) . Added lightweight streaming input abstraction to the Zend Engine scanners to provide uniform support for include()'ing data from PHP streams across all platforms. . Added 'string.base64' stream filter. (Moriyoshi) . Renamed stream_register_wrapper() to stream_wrapper_register(). (Derick) - Improved the GD extension: (Pierre-Alain Joye, Ilia) . imagefilter() - Apply different filters to image. (Only available with bundled GD library) . Antialiased drawing support: o imageantialias() - (de)active antialias o imageline() and imagepolygon() antialias support - Changed the length parameter in fgetss() to be optional. (Moriyoshi) - Changed ini parser to allow for handling of quoted multi-line values. (Ilia) - Changed get_extension_funcs() to return list of the built-in Zend Engine functions if "zend" is specified as the module name. (Ilia) - Changed array_search() to accept also objects as a needle. (Moriyoshi) - Changed ext/mcrypt to require libmcrypt version 2.5.6 or greater. (Derick) - Changed uniqid() parameters to be optional and allow any prefix length. (Marcus) - Added new iconv functions. (Moriyoshi) . iconv_strlen() . iconv_substr() . iconv_strpos() . iconv_strrpos() . iconv_mime_decode() . iconv_mime_encode() - Added misc. new functions: . ldap_sasl_bind(). (peter_c60@hotmail.com, Jani) . imap_getacl(). (Dan, Holger Burbach) . file_put_contents(). (Sterling) . proc_nice() - Changes priority of the current process. (Ilia) . pcntl_getpriority() and pcntl_setpriority(). (Ilia) . idate(), date_sunrise() and date_sunset(). (Moshe Doron) . strpbrk() - Searches a string for a list of characters. (Ilia) . get_headers() - Returns headers sent by the server of the specified URL. (Ilia) . str_split() - Breaks down a string into an array of elements based on length. (Ilia) . array_walk_recursive(). (Ilia) . array_combine(). (Andrey) - Added optional parameter to get_browser() to make it return an array. (Jay) - Added optional parameter to openssl_sign() to specify the hashing algorithm. (scott@planetscott.ca, Derick) - Added optional parameter to sha1(), sha1_file(), md5() and md5_file() which makes them return the digest as binary data. (Michael Bretterklieber, Derick) - Added optional parameter to mkdir() to make directory creation recursive. (Ilia) - Added optional parameter to file() which makes the result array not contain the line endings and to skip empty lines. (Ilia) - Added new range() functionality: . Support for float modifier. (Ilia) . Detection of numeric values inside strings passed as high & low. (Ilia) . Proper handle the situations where high == low. (Ilia) . Added an optional step parameter. (Jon) - Added encoding detection feature for expat XML parser. (Adam Dickmeiss, Moriyoshi) - Added missing multibyte (unicode) support and numeric entity support to html_entity_decode(). (Moriyoshi) - Added IPv6 support to ext/sockets. (Sara) - Added "ftp://" wrapper support to opendir(), stat() and unlink(). (Sara) - Added context options 'method', 'header' and 'content' for "http://" fopen wrapper. (Sara) - Added input filter support. See README.input_filter for more info. (Rasmus) - Added a replace count for str_[i]replace(), see bug #8218. (Sara) - Fixed is_executable() to be available also on Windows. (Shane) - Fixed dirname() and strip_tags() to be binary-safe. (Moriyoshi) - Fixed bug #24098 (crash in pathinfo()). (Ilia) - Fixed bug #21985 and #22064 (various mb_send_mail() issues). (Moriyoshi) - Fixed bug #21600 (Assign by reference function call changes variable contents). (Zeev)