חדשות, עדכונים, מדריכים ועזרים | עדכוני תוכנות ואפליקציות - (20.06.13) - גרסה חדשה: PHP 5.5.0 released

(20.06.13) - גרסה חדשה: PHP 5.5.0 released

עדכוני תוכנות ואפליקציות

חדשות, עדכונים, מדריכים ועזרים


להורדה:
לינוקס: http://www.php.net/downloads.php
ווינדוס (Windows binaries): http://windows.php.net/download/

מה חדש:

◾Drop support for bison < 2.4 when building PHP from GIT source
◾Improved Zend Engine:
◾Added ARMv7/v8 versions of various Zend arithmetic functions that are implemented using inline assembler
◾Added systemtap support by enabling systemtap compatible dtrace probes on linux
◾Optimized access to temporary and compiled VM variables. 8% less memory reads
◾The VM stacks for passing function arguments and syntaticaly nested calls were merged into a single stack. The stack size needed for op_array execution is calculated at compile time and preallocated at once. As result all the stack push operations don't require checks for stack overflow any more
◾General improvement:
◾Added generators and coroutines.
◾Added "finally" keyword. 
◾Added simplified password hashing API.
◾Added support for constant array/string dereferencing.
◾Added Class Name Resolution As Scalar Via "class" Keyword
◾Added support for using empty() on the result of function calls and other expressions
◾Added support for non-scalar Iterator keys in foreach
◾Added support for list in foreach
◾Core:
◾Added Zend Opcache extension and enable building it by default.
◾Added array_column function which returns a column in a multidimensional array
◾Added boolval()
◾Added "Z" option to pack/unpack
◾Added optional second argument for assert() to specify custom message
◾Added support for changing the process's title in CLI/CLI-Server SAPIs. The implementation is more robust that the proctitle PECL module
◾Improve set_exception_handler while doing reset
◾Return previous handler when passing NULL to set_error_handler and set_exception_handler
◾Implemented #64175 (Added HTTP codes as of RFC 6585)
◾Implemented #60738 (Allow 'set_error_handler' to handle NULL)
◾Implemented #60524 (specify temp dir by php.ini)
◾Implemented #46487 (Dereferencing process-handles no longer waits on those processes)
◾Fixed bug #65051 (count() off by one inside unset())
◾Fixed bug #64988 (Class loading order affects E_STRICT warning)
◾Fixed bug #64966 (segfault in zend_do_fcall_common_helper_SPEC)
◾Fixed bug #64960 (Segfault in gc_zval_possible_root)
◾Fixed bug #64936 (doc comments picked up from previous scanner run)
◾Fixed bug #64934 (Apache2 TS crash with get_browser())
◾Fixed bug #64879 (Heap based buffer overflow in quoted_printable_encode, CVE 2013-2110)
◾Fixed bug #64853 (Use of no longer available ini directives causes crash on TS build)
◾Fixed bug #64821 (Custom Exceptions crash when internal properties overridden)
◾Fixed bug #64720 (SegFault on zend_deactivate).
◾Fixed bug #64677 (execution operator `` stealing surrounding arguments)
◾Fixed bug #64660 (Segfault on memory exhaustion within function definition)
◾Fixed bug #64578 (debug_backtrace in set_error_handler corrupts zend heap: segfault)
◾Fixed bug #64565 (copy doesn't report failure on partial copy)
◾Fixed bug #64555 (foreach no longer copies keys if they are interned)
◾Fixed bug #47675 and Fixed bug #64577 (fd leak on Solaris)
◾Fixed bug #64544 (Valgrind warnings after using putenv)
◾Fixed bug #64515 (Memoryleak when using the same variablename 2times in function declaration)
◾Fixed bug #64503 (Compilation fails with error: conflicting types for 'zendparse')
◾Fixed bug #64239 (Debug backtrace changed behavior since 5.4.10 or 5.4.11)
◾Fixed bug #64523 allow XOR in php.ini
◾Fixed bug #64354 (Unserialize array of objects whose class can't be autoloaded fail)
◾Fixed bug #64370 (microtime(true) less than $_SERVER['REQUEST_TIME_FLOAT'])
◾Fixed bug #64166 (quoted-printable-encode stream filter incorrectly discarding whitespace)
◾Fixed bug #64142 (dval to lval different behavior on ppc64)
◾Fixed bug #64135 (Exceptions from set_error_handler are not always propagated)
◾Fixed bug #63980 (object members get trimmed by zero bytes)
◾Fixed bug #63874 (Segfault if php_strip_whitespace has heredoc)
◾Fixed bug #63830 (Segfault on undefined function call in nested generator)
◾Fixed bug #63822 (Crash when using closures with ArrayAccess)
◾Fixed bug #61681 (Malformed grammar)
◾Fixed bug #61038 (unpack("a5", "str#pre##pre#") does not work as expected)
◾Fixed bug #61025 (__invoke() visibility not honored)
◾Fixed bug #60833 (self, parent, static behave inconsistently case-sensitive)
◾Fixed bug #52126 timestamp for mail.log
◾Fixed bug #49348 (Uninitialized ++$foo->bar; does not cause a notice)
◾Fixed bug #23955 allow specifying Max-Age attribute in setcookie()
◾Fixed bug #18556 (Engine uses locale rules to handle class names)
◾Fix undefined behavior when converting double variables to integers. The double is now always rounded towards zero, the remainder of its division by 2^32 or 2^64 (depending on sizeof(long)) is calculated and it's made signed assuming a two's complement representation
◾Removed legacy features:
◾Remove php_logo_guid(), php_egg_logo_guid(), php_real_logo_guid(), zend_logo_guid()
◾Drop Windows XP and 2003 support
◾Apache2 Handler SAPI:
◾Enabled Apache 2.4 configure option for Windows.
◾Calendar:
◾Fixed bug #64895 (Integer overflow in SndToJewish).
◾Fixed bug #54254 (cal_from_jd returns month = 6 when there is only one Adar).
◾CLI server:
◾Fixed bug #64128 (buit-in web server is broken on ppc64).
◾CURL:
◾Remove curl stream wrappers.
◾Implemented #46439 - added CURLFile for safer file uploads
◾Added support for CURLOPT_FTP_RESPONSE_TIMEOUT, CURLOPT_APPEND, CURLOPT_DIRLISTONLY, CURLOPT_NEW_DIRECTORY_PERMS, CURLOPT_NEW_FILE_PERMS, CURLOPT_NETRC_FILE, CURLOPT_PREQUOTE, CURLOPT_KRBLEVEL, CURLOPT_MAXFILESIZE, CURLOPT_FTP_ACCOUNT, CURLOPT_COOKIELIST, CURLOPT_IGNORE_CONTENT_LENGTH, CURLOPT_CONNECT_ONLY, CURLOPT_LOCALPORT, CURLOPT_LOCALPORTRANGE, CURLOPT_FTP_ALTERNATIVE_TO_USER, CURLOPT_SSL_SESSIONID_CACHE, CURLOPT_FTP_SSL_CCC, CURLOPT_HTTP_CONTENT_DECODING, CURLOPT_HTTP_TRANSFER_DECODING, CURLOPT_PROXY_TRANSFER_MODE, CURLOPT_ADDRESS_SCOPE, CURLOPT_CRLFILE, CURLOPT_ISSUERCERT, CURLOPT_USERNAME, CURLOPT_PASSWORD, CURLOPT_PROXYUSERNAME, CURLOPT_PROXYPASSWORD, CURLOPT_NOPROXY, CURLOPT_SOCKS5_GSSAPI_NEC, CURLOPT_SOCKS5_GSSAPI_SERVICE, CURLOPT_TFTP_BLKSIZE, CURLOPT_SSH_KNOWNHOSTS, CURLOPT_FTP_USE_PRET, CURLOPT_MAIL_FROM, CURLOPT_MAIL_RCPT, CURLOPT_RTSP_CLIENT_CSEQ, CURLOPT_RTSP_SERVER_CSEQ, CURLOPT_RTSP_SESSION_ID, CURLOPT_RTSP_STREAM_URI, CURLOPT_RTSP_TRANSPORT, CURLOPT_RTSP_REQUEST, CURLOPT_RESOLVE, CURLOPT_ACCEPT_ENCODING, CURLOPT_TRANSFER_ENCODING, CURLOPT_DNS_SERVERS and CURLOPT_USE_SSL
◾Fixed bug #55635 (CURLOPT_BINARYTRANSFER no longer used. The constant still exists for backward compatibility but is doing nothing)
◾Fixed bug #54995 (Missing CURLINFO_RESPONSE_CODE support)
◾Added new functions curl_escape, curl_multi_setopt, curl_multi_strerror curl_pause, curl_reset, curl_share_close, curl_share_init, curl_share_setopt curl_strerror and curl_unescape
◾Addes new curl options CURLOPT_TELNETOPTIONS, CURLOPT_GSSAPI_DELEGATION, CURLOPT_ACCEPTTIMEOUT_MS, CURLOPT_SSL_OPTIONS, CURLOPT_TCP_KEEPALIVE, CURLOPT_TCP_KEEPIDLE and CURLOPT_TCP_KEEPINTVL
◾DateTime:
◾Added DateTimeImmutable - a variant of DateTime that only returns the modified state instead of changing itself.
◾Fixed bug #64825 (Invalid free when unserializing DateTimeZone).
◾Fixed bug #64359 (strftime crash with VS2012)
◾Fixed bug #62852 (Unserialize Invalid Date causes crash)
◾Fixed bug #61642 (modify("+5 weekdays") returns Sunday)
◾Fixed bug #60774 (DateInterval::format("%a") is always zero when an interval is created using the createFromDateString method)
◾Fixed bug #54567 (DateTimeZone serialize/unserialize)
◾Fixed bug #53437 (Crash when using unserialized DatePeriod instance)
◾dba:
◾Fixed bug #62489 (dba_insert not working as expected)
◾Filter:
◾Implemented #49180 added MAC address validation.
◾Fileinfo:
◾Upgraded libmagic to 5.14.
◾Fixed bug #64830 (mimetype detection segfaults on mp3 file)
◾Fixed bug #63590 (Different results in TS and NTS under Windows)
◾Fixed bug #63248 (Load multiple magic files from a directory under Windows)
◾FPM:
◾Add --with-fpm-systemd option to report health to systemd, and systemd_interval option to configure this. The service can now use Type=notify in the systemd unit file.
◾Ignore QUERY_STRING when sent in SCRIPT_FILENAME
◾Log a warning when a syscall fails
◾Implemented #64764 (add support for FPM init.d script)
◾Fixed bug #64915 (error_log ignored when daemonize=0)
◾Fixed bug #63999 (php with fpm fails to build on Solaris 10 or 11)
◾Fixed some possible memory or resource leaks and possible null dereference detected by code coverity scan
◾GD:
◾Fixed bug #64962 (imagerotate produces corrupted image).
◾Fixed bug #64961 (segfault in imagesetinterpolation)
◾Fix build with system libgd >= 2.1 which is now the minimal version required (as build with previous version is broken). No change when bundled libgd is used
◾Upgraded libgd to 2.1
◾hash:
◾Added support for PBKDF2 via hash_pbkdf2().
◾Fixed bug #64745 (hash_pbkdf2() truncates data when using default length and hex output)
◾intl:
◾Added UConverter wrapper.
◾The intl extension now requires ICU 4.0+
◾Added intl.use_exceptions INI directive, which controls what happens when global errors are set together with intl.error_level
◾MessageFormatter::format() and related functions now accepted named arguments and mixed numeric/named arguments in ICU 4.8+
◾MessageFormatter::format() and related functions now don't error out when an insufficient argument count is provided. Instead, the placeholders will remain unsubstituted
◾MessageFormatter::parse() and MessageFormat::format() (and their static equivalents) don't throw away better than second precision in the arguments
◾IntlDateFormatter::__construct and datefmt_create() now accept for the $timezone argument time zone identifiers, IntlTimeZone objects, DateTimeZone objects and NULL
◾IntlDateFormatter::__construct and datefmt_create() no longer accept invalid timezone identifiers or empty strings
◾The default time zone used in IntlDateFormatter::__construct and datefmt_create() (when the corresponding argument is not passed or NULL is passed) is now the one given by date_default_timezone_get(), not the default ICU time zone
◾The time zone passed to the IntlDateFormatter is ignored if it is NULL and if the calendar passed is an IntlCalendar object -- in this case, the IntlCalendar's time zone will be used instead. Otherwise, the time zone specified in the $timezone argument is used instead. This does not affect old code, as IntlCalendar was introduced in this version
◾IntlDateFormatter::__construct and datefmt_create() now accept for the $calendar argument also IntlCalendar objects
◾IntlDateFormatter::getCalendar() and datefmt_get_calendar() return false if the IntlDateFormatter was set up with an IntlCalendar instead of the constants IntlDateFormatter::GREGORIAN/TRADITIONAL. IntlCalendar did not exist before this version
◾IntlDateFormatter::setCalendar() and datefmt_set_calendar() now also accept an IntlCalendar object, in which case its time zone is taken. Passing a constant is still allowed, and still keeps the time zone
◾IntlDateFormatter::setTimeZoneID() and datefmt_set_timezone_id() are deprecated. Use IntlDateFormatter::setTimeZone() or datefmt_set_timezone() instead
◾IntlDateFormatter::format() and datefmt_format() now also accept an IntlCalendar object for formatting
◾Added the classes: IntlCalendar, IntlGregorianCalendar, IntlTimeZone, IntlBreakIterator, IntlRuleBasedBreakIterator and IntlCodePointBreakIterator
◾Added the functions: intlcal_get_keyword_values_for_locale(), intlcal_get_now(), intlcal_get_available_locales(), intlcal_get(), intlcal_get_time(), intlcal_set_time(), intlcal_add(), intlcal_set_time_zone(), intlcal_after(), intlcal_before(), intlcal_set(), intlcal_roll(), intlcal_clear(), intlcal_field_difference(), intlcal_get_actual_maximum(), intlcal_get_actual_minimum(), intlcal_get_day_of_week_type(), intlcal_get_first_day_of_week(), intlcal_get_greatest_minimum(), intlcal_get_least_maximum(), intlcal_get_locale(), intlcal_get_maximum(), intlcal_get_minimal_days_in_first_week(), intlcal_get_minimum(), intlcal_get_time_zone(), intlcal_get_type(), intlcal_get_weekend_transition(), intlcal_in_daylight_time(), intlcal_is_equivalent_to(), intlcal_is_lenient(), intlcal_is_set(), intlcal_is_weekend(), intlcal_set_first_day_of_week(), intlcal_set_lenient(), intlcal_equals(), intlcal_get_repeated_wall_time_option(), intlcal_get_skipped_wall_time_option(), intlcal_set_repeated_wall_time_option(), intlcal_set_skipped_wall_time_option(), intlcal_from_date_time(), intlcal_to_date_time(), intlcal_get_error_code(), intlcal_get_error_message(), intlgregcal_create_instance(), intlgregcal_set_gregorian_change(), intlgregcal_get_gregorian_change() and intlgregcal_is_leap_year()
◾Added the functions: intltz_create_time_zone(), intltz_create_default(), intltz_get_id(), intltz_get_gmt(), intltz_get_unknown(), intltz_create_enumeration(), intltz_count_equivalent_ids(), intltz_create_time_zone_id_enumeration(), intltz_get_canonical_id(), intltz_get_region(), intltz_get_tz_data_version(), intltz_get_equivalent_id(), intltz_use_daylight_time(), intltz_get_offset(), intltz_get_raw_offset(), intltz_has_same_rules(), intltz_get_display_name(), intltz_get_dst_savings(), intltz_from_date_time_zone(), intltz_to_date_time_zone(), intltz_get_error_code(), intltz_get_error_message()
◾Added the methods: IntlDateFormatter::formatObject(), IntlDateFormatter::getCalendarObject(), IntlDateFormatter::getTimeZone(), IntlDateFormatter::setTimeZone()
◾Added the functions: datefmt_format_object(), datefmt_get_calendar_object(), datefmt_get_timezone(), datefmt_set_timezone(), datefmt_get_calendar_object(), intlcal_create_instance()
◾mbstring:
◾Fixed bug #64769 (mbstring PHPTs crash on Windows x64).
◾MCrypt:
◾mcrypt_ecb(), mcrypt_cbc(), mcrypt_cfb() and mcrypt_ofb() now throw E_DEPRECATED.
◾mysql:
◾This extension is now deprecated, and deprecation warnings will be generated when connections are established to databases via mysql_connect(), mysql_pconnect(), or through implicit connection: use MySQLi or PDO_MySQL instead
◾Dropped support for LOAD DATA LOCAL INFILE handlers when using libmysql. Known for stability problems
◾Added support for SHA256 authentication available with MySQL 5.6.6+
◾mysqli:
◾Added mysqli_begin_transaction()/mysqli::begin_transaction(). Implemented all options, per MySQL 5.6, which can be used with START TRANSACTION, COMMIT and ROLLBACK through options to mysqli_commit()/mysqli_rollback() and their respective OO counterparts. They work in libmysql and mysqlnd mode
◾Added mysqli_savepoint(), mysqli_release_savepoint()
◾Fixed bug #64726 (Segfault when calling fetch_object on a use_result and DB pointer has closed)
◾Fixed bug #64394 (MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS undeclared when using Connector/C)
◾mysqlnd:
◾Add new begin_transaction() call to the connection object. Implemented all options, per MySQL 5.6, which can be used with START TRANSACTION, COMMIT and ROLLBACK
◾Added mysqlnd_savepoint(), mysqlnd_release_savepoint()
◾Fixed bug #63530 (mysqlnd_stmt::bind_one_parameter crashes, uses wrong alloc for stmt->param_bind)
◾Fixed return value of mysqli_stmt_affected_rows() in the time after prepare() and before execute()
◾PCRE:
◾Merged PCRE 8.32
◾Deprecated the /e modifier
◾Fixed bug #63284 (Upgrade PCRE to 8.31)
◾PDO:
◾Fixed bug #63176 (Segmentation fault when instantiate 2 persistent PDO to the same db server)
◾PDO_DBlib:
◾Fixed bug #63638 (Cannot connect to SQL Server 2008 with PDO dblib)
◾Fixed bug #64338 (pdo_dblib can't connect to Azure SQL)
◾Fixed bug #64808 (FreeTDS PDO getColumnMeta on a prepared but not executed statement crashes)
◾PDO_pgsql:
◾Fixed bug #64949 (Buffer overflow in _pdo_pgsql_error)
◾PDO_mysql:
◾Fixed bug #48724 (getColumnMeta() doesn't return native_type for BIT, TINYINT and YEAR)
◾pgsql:
◾Added pg_escape_literal() and pg_escape_identifier()
◾Fixed bug #46408 Locale number format settings can cause pg_query_params to break with numerics
◾Phar:
◾Fixed timestamp update on Phar contents modification
◾readline:
◾Fixed bug #55694 (Expose additional readline variable to prevent default filename completion)
◾Reflection:
◾Fixed bug #64007 (There is an ability to create instance of Generator by hand)
◾Sockets:
◾Added recvmsg() and sendmsg() wrappers
◾Fixed bug #64508 (Fails to build with --disable-ipv6)
◾Fixed bug #64287 (sendmsg/recvmsg shutdown handler causes segfault)
◾SPL:
◾Fixed bug #64997 (Segfault while using RecursiveIteratorIterator on 64-bits systems)
◾Fixed bug #64264 (SPLFixedArray toArray problem)
◾Fixed bug #64228 (RecursiveDirectoryIterator always assumes SKIP_DOTS)
◾Fixed bug #64106 (Segfault on SplFixedArray[][x] = y when extended)
◾Fixed bug #60560 (SplFixedArray un-/serialize, getSize(), count() return 0, keys are strings)
◾Fixed bug #52861 (unset fails with ArrayObject and deep arrays)
◾Implement #48358 (Add SplDoublyLinkedList::add() to insert an element at a given offset)
◾SNMP:
◾Fixed bug #64765 (Some IPv6 addresses get interpreted wrong)
◾Fixed bug #64159 (Truncated snmpget)
◾Fixed bug #64124 (IPv6 malformed)
◾Fixed bug #61981 (OO API, walk: $suffix_as_key is not working correctly)
◾SOAP:
◾Added SoapClient constructor option 'ssl_method' to specify ssl method
◾Streams:
◾Fixed bug #64770 (stream_select() fails with pipes returned by proc_open() on Windows x64)
◾Fixed Windows x64 version of stream_socket_pair() and improved error handling
◾Tokenizer:
◾Fixed bug #60097 (token_get_all fails to lex nested heredoc)
◾Zip:
◾Upgraded libzip to 0.10.1
◾Fixed bug #64452 (Zip crash intermittently)
◾Fixed bug #64342 (ZipArchive::addFile() has to check for file existence)