mirror of
https://github.com/php/php-src.git
synced 2024-09-22 02:17:32 +00:00
Reorganized to remove duplication. Cross checked a few php.ini settings.
Area owners need to do a thorough review of this file.
This commit is contained in:
parent
561a0dfb27
commit
0f5c34874d
489
UPGRADING
489
UPGRADING
@ -1,33 +1,41 @@
|
||||
$Id$
|
||||
|
||||
UPGRADE NOTES - PHP 5.4
|
||||
PHP 5.4 UPGRADE NOTES
|
||||
|
||||
1. Changes made to default configuration
|
||||
2. Reserved words and classes
|
||||
3. Changes made to engine behaviour
|
||||
4. Changes made to existing functions
|
||||
5. Changes made to existing methods
|
||||
6. Changes made to existing classes
|
||||
7. Deprecated
|
||||
8. Removed
|
||||
9. Extensions:
|
||||
a. with changed behaviour
|
||||
b. no longer possible to disable
|
||||
===========
|
||||
0. Contents
|
||||
===========
|
||||
|
||||
1. Changes to INI directives
|
||||
2. Changes to reserved words and classes
|
||||
3. Changes to engine behavior
|
||||
4. Changes to existing functions
|
||||
5. Changes to existing classes
|
||||
6. Changes to existing methods
|
||||
7. Deprecated Functionality
|
||||
8. Removed Functionality
|
||||
a. Removed features
|
||||
b. Removed functions
|
||||
c. Removed syntax
|
||||
d. Removed hash algorithms
|
||||
9. Extension Changes:
|
||||
a. Extensions no longer maintained
|
||||
b. Extensions with changed behavior
|
||||
10. Changes in SAPI support
|
||||
11. Changes in INI directives
|
||||
12. Syntax additions
|
||||
13. Windows support
|
||||
14. New in PHP 5.4:
|
||||
a. New functions
|
||||
b. New global constants
|
||||
c. New classes
|
||||
d. New methods
|
||||
e. New class constants
|
||||
f. New hash algorithms
|
||||
11. Windows support
|
||||
12. New in PHP 5.4:
|
||||
a. New features
|
||||
b. Syntax additions
|
||||
c. New functions
|
||||
d. New global constants
|
||||
e. New classes
|
||||
f. New methods
|
||||
g. New class constants
|
||||
h. New hash algorithms
|
||||
|
||||
========================================
|
||||
1. Changes made to default configuration
|
||||
========================================
|
||||
=============================
|
||||
1. Changes to INI directives
|
||||
=============================
|
||||
|
||||
- The php.ini default_charset directive now defaults to UTF-8. If you
|
||||
were relying on the previous default of ISO-88590-1, you will need
|
||||
@ -35,7 +43,7 @@ UPGRADE NOTES - PHP 5.4
|
||||
|
||||
default_charset = iso-8859-1
|
||||
|
||||
to your php.ini to preserve pre-5.4 behavior.
|
||||
to your php.ini to preserve pre-PHP 5.4 behavior.
|
||||
|
||||
- PHP 5.4 now checks at compile time if /dev/urandom or /dev/arandom
|
||||
are present. If either is available, session.entropy_file now
|
||||
@ -46,7 +54,7 @@ UPGRADE NOTES - PHP 5.4
|
||||
session.entropy_file=
|
||||
session.entropy_length=0
|
||||
|
||||
to your php.ini to preserve pre-PHP5.4 behavior.
|
||||
to your php.ini to preserve pre-PHP 5.4 behavior.
|
||||
|
||||
- Deprecated php.ini directives will now throw an E_CORE_WARNING's
|
||||
instead of the previous E_WARNING's.
|
||||
@ -69,21 +77,65 @@ UPGRADE NOTES - PHP 5.4
|
||||
- safe_mode_exec_dir
|
||||
- safe_mode_allowed_env_vars
|
||||
- safe_mode_protected_env_vars
|
||||
- session.bug_compat42
|
||||
- session.bug_compat_warn
|
||||
- y2k_compliance
|
||||
- zend.ze1_compatibility_mode
|
||||
|
||||
- the following new php.ini directives were added:
|
||||
- max_input_vars - specifies how many GET/POST/COOKIE input
|
||||
variables may be accepted. The default value is 1000.
|
||||
|
||||
=============================
|
||||
2. Reserved words and classes
|
||||
=============================
|
||||
- E_ALL now includes E_STRICT.
|
||||
|
||||
- The recommended production value for error_reporting changed to E_ALL &
|
||||
~E_DEPRECATED & ~E_STRICT.
|
||||
|
||||
- Added new session support directives:
|
||||
session.upload_progress.enabled
|
||||
session.upload_progress.cleanup
|
||||
session.upload_progress.prefix
|
||||
session.upload_progress.name
|
||||
session.upload_progress.freq
|
||||
session.upload_progress.min_freq
|
||||
|
||||
- Added a zend.multibyte directive as a replacement of the PHP compile time
|
||||
configuration option --enable-zend-multibyte. Now the Zend Engine always
|
||||
contains code for multibyte support, which can be enabled or disabled at
|
||||
runtime. Note: It doesn't make a lot of sense to enable this option if
|
||||
ext/mbstring is not enabled, because most functionality is implemented by
|
||||
mbstrings callbacks.
|
||||
|
||||
- Added zend.script_encoding. This value will be used unless a
|
||||
"declare(encoding=...)" directive appears at the top of the script.
|
||||
|
||||
- Added enable_post_data_reading, which is enabled by default. When it's
|
||||
disabled, the POST data is not read (or processed); the behavior is similar
|
||||
to that of other request methods with body, like PUT. This allows reading
|
||||
the raw POST data in multipart requests and reading/processing the POST data
|
||||
in a stream fashion (through php://input) without having it copied in memory
|
||||
multiple times.
|
||||
|
||||
- Added windows_show_crt_warning. This directive shows the CRT warnings when
|
||||
enabled. These warnings were displayed by default until now. It is disabled
|
||||
by default.
|
||||
|
||||
- Added cli.pager to set a pager for CLI interactive shell output.
|
||||
|
||||
- Added cli.prompt to configure the CLI interactive shell prompt.
|
||||
|
||||
- Added cli_server.color to enable the CLI web server to use ANSI color coding
|
||||
in terminal outout.
|
||||
|
||||
========================================
|
||||
2. Changes to reserved words and classes
|
||||
========================================
|
||||
|
||||
- "callable", "insteadof" and "trait" are now reserved words.
|
||||
|
||||
===================================
|
||||
3. Changes made to engine behaviour
|
||||
===================================
|
||||
=============================
|
||||
3. Changes to engine behavior
|
||||
=============================
|
||||
|
||||
- The __construct arguments of an extended abstract constructor must
|
||||
now match:
|
||||
@ -117,11 +169,6 @@ UPGRADE NOTES - PHP 5.4
|
||||
|
||||
- Converting an array to a string now will cause an E_NOTICE warning.
|
||||
|
||||
- Chained string array offsets now work.
|
||||
|
||||
$a = "abc";
|
||||
echo $a[0][0];
|
||||
|
||||
- Non-numeric string offsets, e.g. $a['foo'] where $a is a string, now
|
||||
return false on isset() and true on empty(), and produce warning if
|
||||
trying to use them. Offsets of types double, bool and null produce
|
||||
@ -129,206 +176,230 @@ UPGRADE NOTES - PHP 5.4
|
||||
|
||||
Note that offsets like '12.3' and '5 and a half' are considered
|
||||
non-numeric and produce warning, but are converted to 12 and 5
|
||||
respectively for BC reasons.
|
||||
|
||||
- Changed E_ALL to include E_STRICT.
|
||||
respectively for backwards compatibility reasons.
|
||||
|
||||
- Closures now support scopes and $this and can be rebound to
|
||||
objects using Closure::bind() and Closure::bindTo().
|
||||
|
||||
- Added multibyte support by default. Now it can be enabled or
|
||||
disabled through the zend.multibyte directive in php.ini.
|
||||
|
||||
- <?= is now always available regardless of the short_open_tag
|
||||
setting.
|
||||
|
||||
- Parse error messages are changed to contain more information about
|
||||
the error.
|
||||
|
||||
=====================================
|
||||
4. Changes made to existing functions
|
||||
=====================================
|
||||
================================
|
||||
4. Changes to existing functions
|
||||
================================
|
||||
|
||||
- array_combine now returns array() instead of FALSE when two empty arrays are
|
||||
provided as parameters.
|
||||
- Added an extra parameter to dns_get_record(), which allows requesting DNS
|
||||
records by numeric type and makes the result include only the raw data of
|
||||
the response.
|
||||
- call_user_func_array no longer allows call-time pass by reference.
|
||||
- htmlentities/htmlspecialchars are stricter in the code units they accept for
|
||||
the asian encodings. For Big5-HKSCS, the octets 0x80 and 0xFF are rejected.
|
||||
For GB2312/EUC-CN, the octets 0x8E, 0x8F, 0xA0 and 0xFF are rejected. For
|
||||
SJIS, the octets 0x80, 0xA0, 0xFD, 0xFE and 0xFF are rejected, except maybe
|
||||
after a valid starting byte. For EUC-JP, the octets 0xA0 and 0xFF are
|
||||
rejected.
|
||||
- htmlentities now emits an E_STRICT warning when used with asian characters,
|
||||
|
||||
- dns_get_record() has an extra parameter which allows requesting DNS records
|
||||
by numeric type and makes the result include only the raw data of the
|
||||
response.
|
||||
|
||||
- call_user_func_array() no longer allows call-time pass by reference.
|
||||
|
||||
- htmlentities() and htmlspecialchars() are stricter in the code units they
|
||||
accept for the asian encodings. For Big5-HKSCS, the octets 0x80 and 0xFF are
|
||||
rejected. For GB2312/EUC-CN, the octets 0x8E, 0x8F, 0xA0 and 0xFF are
|
||||
rejected. For SJIS, the octets 0x80, 0xA0, 0xFD, 0xFE and 0xFF are rejected,
|
||||
except maybe after a valid starting byte. For EUC-JP, the octets 0xA0 and
|
||||
0xFF are rejected.
|
||||
|
||||
- htmlentities() now emits an E_STRICT warning when used with asian characters,
|
||||
as in that case htmlentities has (and already had before this version) the
|
||||
same functionality as htmlspecialchars.
|
||||
- htmlentities no longer numerically encodes high characters for single-byte
|
||||
|
||||
- htmlentities() no longer numerically encodes high characters for single-byte
|
||||
encodings (except when there's actually a corresponding named entity). This
|
||||
behavior was not documented and was inconsistent with that for "UTF-8".
|
||||
- html_entity_decode/htmlspecialchars_decode behave more consistently, now
|
||||
decoding entities in malformed strings such as "&&" or "&#&".
|
||||
- htmlentities/htmlspecialchars/html_entity_decode/htmlspecialchars_decode:
|
||||
Added the flags ENT_HTML401, ENT_XML1, ENT_XHTML, and ENT_HTML5. The
|
||||
behavior of these functions including, but not limited to, the characters
|
||||
that are encoded and the entities that are decoded depend on the document
|
||||
type that is specified by those flags.
|
||||
- htmlentities/htmlspecialchars with !$double_encode do more strict checks on
|
||||
the validity of the entities. Numerical entities are checked for a valid
|
||||
range (0 to 0x10FFFF); if the flag ENT_DISALLOWED is given, the validity of
|
||||
such numerical entity in the target document type is also checked. Named
|
||||
entities are checked for necessary existence in the target document type
|
||||
instead of only checking whether they were constituted by alphanumeric
|
||||
characters.
|
||||
|
||||
- html_entity_decode() and htmlspecialchars_decode() behave more consistently,
|
||||
now decoding entities in malformed strings such as "&&" or "&#&".
|
||||
|
||||
- htmlentities(), htmlspecialchars(), html_entity_decode(), and
|
||||
htmlspecialchars_decode: Added the flags ENT_HTML401, ENT_XML1, ENT_XHTML,
|
||||
and ENT_HTML5. The behavior of these functions including, but not limited to,
|
||||
the characters that are encoded and the entities that are decoded depend on
|
||||
the document type that is specified by those flags.
|
||||
|
||||
- htmlentities() and htmlspecialchars() with !$double_encode do more strict
|
||||
checks on the validity of the entities. Numerical entities are checked for a
|
||||
valid range (0 to 0x10FFFF); if the flag ENT_DISALLOWED is given, the
|
||||
validity of such numerical entity in the target document type is also
|
||||
checked. Named entities are checked for necessary existence in the target
|
||||
document type instead of only checking whether they were constituted by
|
||||
alphanumeric characters.
|
||||
|
||||
- The flag ENT_DISALLOWED was added. In addition to the behavior described in
|
||||
the item before, it also makes htmlentities/htmlspecialchars substitute
|
||||
characters that appear literally in the argument string and which are not
|
||||
allowed in the target document type with U+FFFD (UTF-8) or �.
|
||||
the item before, it also makes htmlentities() and htmlspecialchars()
|
||||
substitute characters that appear literally in the argument string and which
|
||||
are not allowed in the target document type with U+FFFD (UTF-8) or �.
|
||||
|
||||
- The flag ENT_SUBSTITUTE was added. This flag makes invalid multibyte
|
||||
sequences be replaced by U+FFFD (UTF-8) or &#FFFD; by htmlspecialchars and
|
||||
htmlentities. It is an alternative to the default behavior, which just
|
||||
sequences be replaced by U+FFFD (UTF-8) or &#FFFD; by htmlspecialchars() and
|
||||
htmlentities(). It is an alternative to the default behavior, which just
|
||||
returns an empty string and to ENT_IGNORE, which is a security risk. The
|
||||
behavior follows the recommendations of Unicode Technical Report #36.
|
||||
- htmlspecialchars_decode/html_entity_decode now decode ' if the document
|
||||
type is ENT_XML1, ENT_XHTML, or ENT_HTML5.
|
||||
|
||||
- htmlspecialchars_decode() and html_entity_decode() now decode ' if the
|
||||
document type is ENT_XML1, ENT_XHTML, or ENT_HTML5.
|
||||
|
||||
- Charset detection with $charset == '' no longer turns to mbstring's
|
||||
internal encoding defined through mb_internal_encoding(). Only the encoding
|
||||
defined through the php.ini setting mbstring.internal_encoding is considered.
|
||||
|
||||
- number_format() no longer truncates multibyte decimal points and thousand
|
||||
separators to the first byte.
|
||||
|
||||
- The third parameter ($matches) to preg_match_all() is now optional. If
|
||||
omitted, the function will simply return the number of times the pattern was
|
||||
matched in the subject and will have no other side effects.
|
||||
|
||||
- The second argument of scandir() now accepts SCANDIR_SORT_NONE (2) as a
|
||||
possible value. This value results in scandir() performing no sorting: on
|
||||
local filesystems, this allows files to be returned in native filesystem
|
||||
order.
|
||||
|
||||
- stream_select() now preserves the keys of the passed array, be they numeric or
|
||||
strings. This breaks code that iterated the resulting stream array using a
|
||||
numeric index, but makes easier to identify which of the passed streams are
|
||||
present in the result.
|
||||
|
||||
- stream_set_write_buffer() no longer disables the read buffer of a plain
|
||||
stream when 0 is given as the second argument.
|
||||
|
||||
- stream_set_write_buffer() no longer changes the chunk size in socket streams.
|
||||
|
||||
- fclose() closes streams with resource refcount > 1; it doesn't merely
|
||||
decrement the resource refcount.
|
||||
|
||||
- socket_set_options() and socket_get_options() now support multicast options.
|
||||
- The raw data parameter in openssl_encrypt()/openssl_decrypt() is now an options
|
||||
integer rather than a boolean. A value of true produces the same behaviour.
|
||||
|
||||
- The raw data parameter in openssl_encrypt() and openssl_decrypt() is now an
|
||||
options integer rather than a boolean. A value of true produces the same
|
||||
behavior.
|
||||
|
||||
- Write operations within XSLT (for example with the extension sax:output) are
|
||||
disabled by default. You can define what is forbidden with the method
|
||||
XsltProcess::setSecurityPrefs($options).
|
||||
|
||||
- Added AES support to OpenSSL.
|
||||
|
||||
- openssl_csr_new() expects the textual data to be in UTF-8.
|
||||
- Added no padding option to openssl_encrypt()/openssl_decrypt().
|
||||
|
||||
- Added no-padding option to openssl_encrypt() and openssl_decrypt().
|
||||
|
||||
- Added a "no_ticket" SSL context option to disable the SessionTicket TLS
|
||||
extension.
|
||||
|
||||
- Added new json_encode() options: JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES,
|
||||
JSON_NUMERIC_CHECK, JSON_BIGINT_AS_STRING, JSON_UNESCAPED_UNICODE.
|
||||
|
||||
- Added Tokyo Cabinet and Berkley DB 5 support to DBA extension.
|
||||
|
||||
- Added support for CURLOPT_MAX_SEND_SPEED_LARGE and CURLOPT_MAX_RECV_SPEED_LARGE
|
||||
to cURL.
|
||||
|
||||
- Added optional argument to debug_backtrace() and debug_print_backtrace()
|
||||
to limit the amount of stack frames returned.
|
||||
|
||||
- Fixed crypt_blowfish handling of 8-bit characters. crypt() in Blowfish mode
|
||||
now supports hashes marked $2a$, $2x$, $2y$ and $2z$.
|
||||
|
||||
- mbstring now supports following encodings: Shift_JIS/UTF-8 Emoji,
|
||||
JIS X0213:2004 (Shift_JIS-2004, EUC-JP-2004, ISO-2022-JP-2004),
|
||||
MacJapanese (Shift_JIS), gb18030.
|
||||
- Added encode/decode in hex format to mb_[en|de]code_numericentity().
|
||||
- Added support for SORT_NATURAL and SORT_FLAG_CASE in array sort functions
|
||||
(sort, rsort, ksort, krsort, asort, arsort and array_multisort).
|
||||
|
||||
- Added encode and decode in hex format to mb_encode_numericentity() and
|
||||
mb_decode_numericentity().
|
||||
|
||||
- Added support for SORT_NATURAL and SORT_FLAG_CASE in array sort functions:
|
||||
sort(), rsort(), ksort(), krsort(), asort(), arsort() and array_multisort().
|
||||
|
||||
- is_a() and is_subclass_of() now have third boolean parameter, which specifies
|
||||
if the first argument can be a string class name. Default if false for is_a
|
||||
and true for is_subclass_of() for BC reasons.
|
||||
|
||||
- ob_start() will now treat a chunk size of 1 as meaning 1 byte, rather than
|
||||
the previous special case behaviour of treating it as 4096 bytes.
|
||||
the previous special case behavior of treating it as 4096 bytes.
|
||||
|
||||
- idn_to_ascii() and idn_to_utf8() now take two extra parameters, one indicating
|
||||
the variant (IDNA 2003 or UTS #46) and another, passed by reference, to return
|
||||
details about the operation in case UTS #46 is chosen.
|
||||
|
||||
- gzencode() used with FORCE_DEFLATE now generates RFC1950 compliant data.
|
||||
- ob_start() refuses to start multiple output buffers at once passed as
|
||||
|
||||
- ob_start() no longer starts multiple output buffers when passed
|
||||
array("callback1", "callback2", "callback3", ...).
|
||||
|
||||
===================================
|
||||
5. Changes made to existing methods
|
||||
===================================
|
||||
|
||||
- DateTime::parseFromFormat() now has + modifier to allow trailing text in
|
||||
the string to parse without throwing an error.
|
||||
- Added the ability to pass options to DOMDocument::loadHTML().
|
||||
- FilesystemIterator, GlobIterator and (Recursive)DirectoryIterator now use
|
||||
the default stream context.
|
||||
|
||||
===================================
|
||||
6. Changes made to existing classes
|
||||
===================================
|
||||
==============================
|
||||
5. Changes to existing classes
|
||||
==============================
|
||||
|
||||
- Classes that implement stream wrappers can define a method called
|
||||
stream_truncate that will respond to truncation, e.g. through ftruncate.
|
||||
Strictly speaking, this is an addition to the user-space stream wrapper
|
||||
template, not a change to an actual class.
|
||||
- Classes that implement stream wrappers can define a method called stream_metadata that
|
||||
will be called on touch(), chmod(), chgrp(), chown().
|
||||
|
||||
- Classes that implement stream wrappers can define a method called
|
||||
stream_metadata that will be called on touch(), chmod(), chgrp(), chown().
|
||||
|
||||
- Arrays cast from SimpleXMLElement now always contain all nodes instead of
|
||||
just the first matching node.
|
||||
|
||||
- All SimpleXMLElement children are now always printed when using var_dump(),
|
||||
var_export(), and print_r().
|
||||
|
||||
- Added iterator support in MySQLi. mysqli_result implements Traversable.
|
||||
|
||||
=============
|
||||
7. Deprecated
|
||||
=============
|
||||
==============================
|
||||
6. Changes to existing methods
|
||||
==============================
|
||||
|
||||
- DateTime::parseFromFormat() now has a "+" modifier to allow trailing text in
|
||||
the string to parse without throwing an error.
|
||||
|
||||
- Added the ability to pass options to DOMDocument::loadHTML().
|
||||
|
||||
- FilesystemIterator, GlobIterator and (Recursive)DirectoryIterator now use
|
||||
the default stream context.
|
||||
|
||||
===========================
|
||||
7. Deprecated Functionality
|
||||
===========================
|
||||
|
||||
- The following functions are deprecated in PHP 5.4:
|
||||
- get_magic_quotes_gpc()
|
||||
- get_magic_quotes_runtime()
|
||||
- mcrypt_generic_end()
|
||||
- get_magic_quotes_gpc(): now always returns false
|
||||
- get_magic_quotes_runtime(): now always returns false
|
||||
- mcrypt_generic_end(): use mcrypt_generic_deinit() instead
|
||||
- mysql_list_dbs()
|
||||
|
||||
==========
|
||||
8. Removed
|
||||
==========
|
||||
========================
|
||||
8. Removed Functionality
|
||||
========================
|
||||
|
||||
a. removed features
|
||||
a. Removed features
|
||||
|
||||
- magic quotes
|
||||
. remove magic_quotes_gpc, magic_quotes_runtime,
|
||||
magic_quotes_sybase (calling ini_set('magic_....')
|
||||
returns 0|false
|
||||
. get_magic_quotes_gpc, get_magic_quotes_runtime are kept but
|
||||
always return false
|
||||
. set_magic_quotes_runtime raises an E_CORE_ERROR
|
||||
The following features have been removed from PHP 5.4:
|
||||
|
||||
- register_globals
|
||||
- register_long_arrays
|
||||
- Magic quotes
|
||||
- Register globals
|
||||
- Safe mode
|
||||
- Session extension bug compatibility mode
|
||||
- y2k_compliance mode
|
||||
- Y2K compliance mode
|
||||
|
||||
b. removed php.ini directives
|
||||
b. Removed functions
|
||||
|
||||
- define_syslog_variables
|
||||
- register_globals
|
||||
- register_long_arrays
|
||||
- safe_mode
|
||||
- safe_mode_gid
|
||||
- safe_mode_include_dir
|
||||
- safe_mode_exec_dir
|
||||
- safe_mode_allowed_env_vars
|
||||
- safe_mode_protected_env_vars
|
||||
- session.bug_compat42
|
||||
- session.bug_compat_warn
|
||||
- y2k_compliance
|
||||
|
||||
c. removed functions
|
||||
The following functions are no longer available in PHP 5.4:
|
||||
|
||||
- define_syslog_variables()
|
||||
- import_request_variables()
|
||||
- session_is_registered()
|
||||
- session_register()
|
||||
- session_unregister()
|
||||
- set_magic_quotes_runtime()
|
||||
- mysqli_bind_param() (alias of mysqli_stmt_bind_param())
|
||||
- mysqli_bind_result() (alias of mysqli_stmt_bind_result())
|
||||
- mysqli_client_encoding() (alias of mysqli_character_set_name())
|
||||
@ -339,42 +410,46 @@ UPGRADE NOTES - PHP 5.4
|
||||
- mysqli::client_encoding() (alias of mysqli::character_set_name)
|
||||
- mysqli_stmt::stmt() (never worked/always throws, undocumented)
|
||||
|
||||
d. removed syntax
|
||||
c. Removed syntax
|
||||
|
||||
- break $var;
|
||||
- continue $var;
|
||||
|
||||
e. removed hash algorithms
|
||||
d. Removed hash algorithms
|
||||
|
||||
- Salsa10 and Salsa20, which are actually stream ciphers
|
||||
|
||||
=============
|
||||
9. Extensions
|
||||
=============
|
||||
====================
|
||||
9. Extension Changes
|
||||
====================
|
||||
|
||||
a. no longer maintained
|
||||
a. Extensions no longer maintained
|
||||
|
||||
- ext/sqlite
|
||||
- ext/sqlite is no longer part of the base distribution.
|
||||
Use sqlite3 or PDO_SQLITE instead.
|
||||
|
||||
b. with changed behaviour
|
||||
b. Extensions with changed behavior
|
||||
|
||||
- The MySQL extensions (ext/mysql, mysqli and PDO_mysql) use mysqlnd
|
||||
- The MySQL extensions (ext/mysql, mysqli and PDO_MYSQL) use mysqlnd
|
||||
as the default library now. It is still possible to use libmysql by
|
||||
specifying a path to the configure options.
|
||||
- PDO_mysql: Support for linking with MySQL client libraries older
|
||||
|
||||
- PDO_MYSQL: Support for linking with MySQL client libraries older
|
||||
than 4.1 is removed.
|
||||
|
||||
- The session extension now can hook into the file upload feature
|
||||
in order to provide upload progress information through session
|
||||
variables.
|
||||
|
||||
- SNMP extension
|
||||
- Functions in SNMP extension now returns FALSE on every error
|
||||
condition including SNMP-related (no such instance, end of MIB,
|
||||
etc). Thus, in patricular, breaks previous behaviour of get/walk
|
||||
etc). Thus, in patricular, breaks previous behavior of get/walk
|
||||
functions returning an empty string on SNMP-related errors.
|
||||
- Multi OID get/getnext/set queries are now supported.
|
||||
- New constants added for use in snmp_set_oid_output_format()
|
||||
function.
|
||||
- Function snmp_set_valueretrieval() changed it's behaviour:
|
||||
- Function snmp_set_valueretrieval() changed it's behavior:
|
||||
SNMP_VALUE_OBJECT can be combined with one of
|
||||
SNMP_VALUE_PLAIN or SNMP_VALUE_LIBRARY resulting OID value
|
||||
changes. When no SNMP_VALUE_PLAIN or SNMP_VALUE_LIBRARY
|
||||
@ -400,50 +475,42 @@ UPGRADE NOTES - PHP 5.4
|
||||
10. Changes in SAPI support
|
||||
===========================
|
||||
|
||||
- Added built-in CLI web server that is intended for testing purposes.
|
||||
- The REQUEST_TIME value inside server now returns a floating point number
|
||||
indicating the time with microsecond precision. All SAPIs providing this
|
||||
value should be returning float and not time_t.
|
||||
- A REQUEST_TIME_FLOAT value returns a floating point number indicating the
|
||||
time with microsecond precision. All SAPIs providing this value should be
|
||||
returning float and not time_t.
|
||||
|
||||
- apache_child_terminate(), getallheaders(), apache_request_headers()
|
||||
and apache_response_headers() now supported on FastCGI.
|
||||
- Added shortcut #inisetting=value to change php.ini settings at run-time.
|
||||
- Changed shell not to terminate on fatal errors.
|
||||
- Interactive shell works with shared readline extension.
|
||||
- Added command line option --rz <name> which shows information of the
|
||||
and apache_response_headers() are now supported on FastCGI.
|
||||
|
||||
- The interactive shell allows a shortcut #inisetting=value to change php.ini
|
||||
settings at run-time.
|
||||
|
||||
- The interactive shell now works with the shared readline extension.
|
||||
|
||||
- The interactive shell no longer terminates on fatal errors.
|
||||
|
||||
- A new PHP CLI command line option --rz <name> shows information about the
|
||||
named Zend extension.
|
||||
- PHP-FPM now supports syslog value for error_log.
|
||||
|
||||
=============================
|
||||
11. Changes in INI directives
|
||||
=============================
|
||||
===================
|
||||
11. Windows support
|
||||
===================
|
||||
|
||||
- Recommended production value for error_reporting changed to
|
||||
E_ALL & ~E_DEPRECATED & ~E_STRICT.
|
||||
- Added session.upload_progress.enabled, session.upload_progress.cleanup,
|
||||
session.upload_progress.prefix, session.upload_progress.name,
|
||||
session.upload_progress.freq, session.upload_progress.min_freq.
|
||||
- Added zend.multibyte directive as a replacement of PHP compile time
|
||||
configuration option --enable-zend-multibyte. Now ZE always contains code for
|
||||
multibyte support, but may enable or disable it by zend.multibyte. It doesn't
|
||||
make a lot of sense to enable this option without ext/mbstring, because the
|
||||
most functionality is implemented by mbstrings callbacks.
|
||||
- Added enable_post_data_reading, which is enabled by default. When it's
|
||||
disabled, the POST data is not read (and processed); the behavior is similar
|
||||
to that of other request methods with body, like PUT. This allows reading the
|
||||
raw POST data in multipart requests and read/process the POST data in a
|
||||
stream fashion (through php://input), without having it copied in memory two/
|
||||
three times.
|
||||
- A new directive, called windows_show_crt_warning, has been introduced.
|
||||
This directive shows the CRT warnings when enabled. These warnings were
|
||||
displayed by default until now. It is disabled by default.
|
||||
- Added cli.pager php.ini setting to set a pager for CLI output.
|
||||
- Added cli.prompt php.ini setting to configure the CLI shell prompt.
|
||||
- Added process.max to control the number of process FPM can fork.
|
||||
- is_link now works properly for symbolic links on Windows Vista
|
||||
or later. Earlier systems do not support symbolic links.
|
||||
|
||||
====================
|
||||
12. Syntax additions
|
||||
====================
|
||||
- Traits:
|
||||
==================
|
||||
12. New in PHP 5.4
|
||||
==================
|
||||
|
||||
a. New Features
|
||||
|
||||
- A built-in CLI web server for testing purposes is now available:
|
||||
$ php -S 127.0.0.1:8888
|
||||
|
||||
b. Syntax additions
|
||||
|
||||
- Traits:
|
||||
trait HelloWorld {
|
||||
public function sayHello() {
|
||||
echo 'Hello World!';
|
||||
@ -457,13 +524,11 @@ UPGRADE NOTES - PHP 5.4
|
||||
$hello = new CanIGetHello();
|
||||
$hello->sayHello();
|
||||
|
||||
- Function call result array access:
|
||||
e.g.
|
||||
- Function call result array access, e.g.:
|
||||
foo()[0]
|
||||
$foo->bar()[0]
|
||||
|
||||
- Callable typehint, argument must be callable (i.e. pass is_callable($arg, false))
|
||||
example:
|
||||
- Callable typehint indicating argument must be callable:
|
||||
function foo(callable $do) {
|
||||
}
|
||||
foo("strcmp");
|
||||
@ -471,20 +536,22 @@ UPGRADE NOTES - PHP 5.4
|
||||
$o = new ArrayObject();
|
||||
foo(array($o, "count"));
|
||||
|
||||
- Short array syntax:
|
||||
- Short array syntax:
|
||||
$a = [1, 2, 3, 4];
|
||||
$a = ['one' => 1, 'two' => 2, 'three' => 3, 'four' => 4];
|
||||
$a = ['one' => 1, 2, 'three' => 3, 4];
|
||||
|
||||
- Binary number format:
|
||||
- Binary number format:
|
||||
0b00100 0b010101
|
||||
|
||||
- $str[1][0] where $str is a string is now a legal construct.
|
||||
- Chained string array offsets now work.
|
||||
$a = "abc";
|
||||
echo $a[0][0];
|
||||
|
||||
- Anonymous functions now support using $this and class scope.
|
||||
- Anonymous functions now support using $this and class scope.
|
||||
Anonymous function can be declared as "static" to ignore the scope.
|
||||
|
||||
- Class::{expr}() syntax is now supported:
|
||||
- Class::{expr}() syntax is now supported:
|
||||
class A {
|
||||
static function foo() {
|
||||
echo "Hello world!\n";
|
||||
@ -494,23 +561,13 @@ UPGRADE NOTES - PHP 5.4
|
||||
$y = "o";
|
||||
A::{$x.$y.$y}();
|
||||
|
||||
- Class member access on instantiation:
|
||||
- Class member access on instantiation:
|
||||
(new foo)->method()
|
||||
(new foo)->property
|
||||
(new foo)[0]
|
||||
|
||||
===================
|
||||
13. Windows support
|
||||
===================
|
||||
|
||||
- is_link now works properly for symbolic links on Windows Vista
|
||||
or later. Earlier systems do not support symbolic links.
|
||||
|
||||
===================
|
||||
14. New in PHP 5.4:
|
||||
===================
|
||||
|
||||
a. New functions
|
||||
c. New functions
|
||||
|
||||
- Core:
|
||||
- get_declared_traits()
|
||||
@ -549,7 +606,7 @@ UPGRADE NOTES - PHP 5.4
|
||||
- SPL
|
||||
- class_uses()
|
||||
|
||||
b. New global constants
|
||||
d. New global constants
|
||||
|
||||
- CURLOPT_MAX_RECV_SPEED_LARGE
|
||||
- CURLOPT_MAX_SEND_SPEED_LARGE
|
||||
@ -640,7 +697,7 @@ UPGRADE NOTES - PHP 5.4
|
||||
- IDNA_ERROR_BIDI
|
||||
- IDNA_ERROR_CONTEXTJ
|
||||
|
||||
c. New classes
|
||||
e. New classes
|
||||
|
||||
- Reflection:
|
||||
- ReflectionZendExtension
|
||||
@ -662,7 +719,7 @@ UPGRADE NOTES - PHP 5.4
|
||||
- CallbackFilterIterator
|
||||
- RecursiveCallbackFilterIterator
|
||||
|
||||
d. New methods
|
||||
f. New methods
|
||||
|
||||
- Closure:
|
||||
- Closure::bind()
|
||||
@ -694,7 +751,7 @@ UPGRADE NOTES - PHP 5.4
|
||||
- ReflectionParameter::canBePassedByValue()
|
||||
- ReflectionParameter::isCallable()
|
||||
|
||||
- PDO_dblib:
|
||||
- PDO_DBLIB:
|
||||
- PDO::newRowset()
|
||||
|
||||
- SPL:
|
||||
@ -715,7 +772,7 @@ UPGRADE NOTES - PHP 5.4
|
||||
- XsltProcessor::setSecurityPrefs()
|
||||
- XsltProcessor::getSecurityPrefs()
|
||||
|
||||
e. New class constants
|
||||
g. New class constants
|
||||
|
||||
- PDO:
|
||||
- PDO::MYSQL_ATTR_SSL_CA
|
||||
@ -724,7 +781,7 @@ UPGRADE NOTES - PHP 5.4
|
||||
- PDO::MYSQL_ATTR_SSL_CIPHER
|
||||
- PDO::MYSQL_ATTR_SSL_KEY
|
||||
|
||||
f. New Hash algorithms
|
||||
h. New Hash algorithms
|
||||
|
||||
- fnv132
|
||||
- fnv164
|
||||
|
Loading…
Reference in New Issue
Block a user