Skip to content

Commit 79a96d2

Browse files
committed
Merge branch 'PHP-5.5'
Conflicts: NEWS-5.5
2 parents 15c3d3a + 01049ca commit 79a96d2

File tree

6 files changed

+381
-3
lines changed

6 files changed

+381
-3
lines changed

NEWS-5.5

Lines changed: 345 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,345 @@
1+
PHP NEWS
2+
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3+
?? ??? 201?, PHP 5.5.0 Beta 1
4+
5+
- Core:
6+
. Fixed bug #61025 (__invoke() visibility not honored). (Laruence)
7+
. Fixed bug #49348 (Uninitialized ++$foo->bar; does not cause a notice).
8+
(Stas)
9+
10+
- Sockets:
11+
. Fixed bug #64287 (sendmsg/recvmsg shutdown handler causes segfault).
12+
(Gustavo)
13+
14+
- PCRE:
15+
. Merged PCRE 8.32. (Anatol)
16+
17+
21 Feb 2013, PHP 5.5.0 Alpha 5
18+
19+
- Core:
20+
. Implemented FR #64175 (Added HTTP codes as of RFC 6585). (Jonh Wendell)
21+
. Fixed bug #64135 (Exceptions from set_error_handler are not always
22+
propagated). (Laruence)
23+
. Fixed bug #63830 (Segfault on undefined function call in nested generator).
24+
(Nikita Popov)
25+
. Fixed bug #60833 (self, parent, static behave inconsistently
26+
case-sensitive). (Stas, mario at include-once dot org)
27+
. Implemented FR #60524 (specify temp dir by php.ini). (ALeX Kazik).
28+
. Fixed bug #64142 (dval to lval different behavior on ppc64). (Remi)
29+
. Added ARMv7/v8 versions of various Zend arithmetic functions that are
30+
implemented using inline assembler (Ard Biesheuvel)
31+
. Fix undefined behavior when converting double variables to integers.
32+
The double is now always rounded towards zero, the remainder of its division
33+
by 2^32 or 2^64 (depending on sizeof(long)) is calculated and it's made
34+
signed assuming a two's complement representation. (Gustavo)
35+
36+
- CLI server:
37+
. Fixed bug #64128 (buit-in web server is broken on ppc64). (Remi)
38+
39+
- cURL:
40+
. Implemented FR #46439 - added CURLFile for safer file uploads.
41+
(Stas)
42+
43+
- Intl:
44+
. Cherry-picked UConverter wrapper, which had accidentaly been committed only
45+
to master.
46+
47+
- mysqli
48+
. Added mysqli_begin_transaction()/mysqli::begin_transaction(). Implemented
49+
all options, per MySQL 5.6, which can be used with START TRANSACTION, COMMIT
50+
and ROLLBACK through options to mysqli_commit()/mysqli_rollback() and their
51+
respective OO counterparts. They work in libmysql and mysqlnd mode. (Andrey)
52+
. Added mysqli_savepoint(), mysqli_release_savepoint(). (Andrey)
53+
54+
- mysqlnd
55+
. Add new begin_transaction() call to the connection object. Implemented all
56+
options, per MySQL 5.6, which can be used with START TRANSACTION, COMMIT
57+
and ROLLBACK. (Andrey)
58+
. Added mysqlnd_savepoint(), mysqlnd_release_savepoint(). (Andrey)
59+
60+
- Sockets:
61+
. Added recvmsg() and sendmsg() wrappers. (Gustavo)
62+
See https://wiki.php.net/rfc/sendrecvmsg
63+
64+
- Filter:
65+
. Implemented FR #49180 - added MAC address validation. (Martin)
66+
67+
- Phar:
68+
. Fixed timestamp update on Phar contents modification. (Dmitry)
69+
70+
- SPL:
71+
. Fixed bug #64264 (SPLFixedArray toArray problem). (Laruence)
72+
. Fixed bug #64228 (RecursiveDirectoryIterator always assumes SKIP_DOTS).
73+
(patch by kriss@krizalys.com, Laruence)
74+
. Fixed bug #64106 (Segfault on SplFixedArray[][x] = y when extended).
75+
(Nikita Popov)
76+
. Fixed bug #52861 (unset fails with ArrayObject and deep arrays).
77+
(Mike Willbanks)
78+
79+
- SNMP:
80+
. Fixed bug #64124 (IPv6 malformed). (Boris Lytochkin)
81+
82+
24 Jan 2013, PHP 5.5.0 Alpha 4
83+
84+
- Core:
85+
. Fixed bug #63980 (object members get trimmed by zero bytes). (Laruence)
86+
. Implemented RFC for Class Name Resolution As Scalar Via "class" Keyword.
87+
(Ralph Schindler, Nikita Popov, Lars)
88+
89+
- DateTime
90+
. Added DateTimeImmutable - a variant of DateTime that only returns the
91+
modified state instead of changing itself. (Derick)
92+
93+
- FPM:
94+
. Fixed bug #63999 (php with fpm fails to build on Solaris 10 or 11). (Adam)
95+
96+
- pgsql:
97+
. Bug #46408: Locale number format settings can cause pg_query_params to
98+
break with numerics. (asmecher, Lars)
99+
100+
- dba:
101+
. Bug #62489: dba_insert not working as expected.
102+
(marc-bennewitz at arcor dot de, Lars)
103+
104+
- Reflection:
105+
. Fixed bug #64007 (There is an ability to create instance of Generator by
106+
hand). (Laruence)
107+
108+
10 Jan 2013, PHP 5.5.0 Alpha 3
109+
110+
- General improvements:
111+
. Fixed bug #63874 (Segfault if php_strip_whitespace has heredoc). (Pierrick)
112+
. Fixed bug #63822 (Crash when using closures with ArrayAccess).
113+
(Nikita Popov)
114+
. Add Generator::throw() method. (Nikita Popov)
115+
. Bug #23955: allow specifying Max-Age attribute in setcookie() (narfbg, Lars)
116+
. Bug #52126: timestamp for mail.log (Martin Jansen, Lars)
117+
118+
- mysqlnd
119+
. Fixed return value of mysqli_stmt_affected_rows() in the time after
120+
prepare() and before execute(). (Andrey)
121+
122+
- cURL:
123+
. Added new functions curl_escape, curl_multi_setopt, curl_multi_strerror
124+
curl_pause, curl_reset, curl_share_close, curl_share_init,
125+
curl_share_setopt curl_strerror and curl_unescape. (Pierrick)
126+
. Addes new curl options CURLOPT_TELNETOPTIONS, CURLOPT_GSSAPI_DELEGATION,
127+
CURLOPT_ACCEPTTIMEOUT_MS, CURLOPT_SSL_OPTIONS, CURLOPT_TCP_KEEPALIVE,
128+
CURLOPT_TCP_KEEPIDLE and CURLOPT_TCP_KEEPINTVL. (Pierrick)
129+
130+
18 Dec 2012, PHP 5.5.0 Alpha 2
131+
132+
- General improvements:
133+
. Added systemtap support by enabling systemtap compatible dtrace probes on
134+
linux. (David Soria Parra)
135+
. Added support for using empty() on the result of function calls and
136+
other expressions (https://wiki.php.net/rfc/empty_isset_exprs).
137+
(Nikita Popov)
138+
. Optimized access to temporary and compiled VM variables. 8% less memory
139+
reads. (Dmitry)
140+
. The VM stacks for passing function arguments and syntaticaly nested calls
141+
were merged into a single stack. The stack size needed for op_array
142+
execution is calculated at compile time and preallocated at once. As result
143+
all the stack push operatins don't require checks for stack overflow
144+
any more. (Dmitry)
145+
146+
- MySQL
147+
. This extension is now deprecated, and deprecation warnings will be generated
148+
when connections are established to databases via mysql_connect(),
149+
mysql_pconnect(), or through implicit connection: use MySQLi or PDO_MySQL
150+
instead (https://wiki.php.net/rfc/mysql_deprecation). (Adam)
151+
152+
- Fileinfo:
153+
. Fixed bug #63590 (Different results in TS and NTS under Windows).
154+
(Anatoliy)
155+
156+
- Apache2 Handler SAPI:
157+
. Enabled Apache 2.4 configure option for Windows (Pierre, Anatoliy)
158+
159+
13 Nov 2012, PHP 5.5.0 Alpha 1
160+
161+
- General improvements:
162+
. Added generators and coroutines (https://wiki.php.net/rfc/generators).
163+
(Nikita Popov)
164+
. Added "finally" keyword (https://wiki.php.net/rfc/finally). (Laruence)
165+
. Add simplified password hashing API
166+
(https://wiki.php.net/rfc/password_hash). (Anthony Ferrara)
167+
. Added support for list in foreach (https://wiki.php.net/rfc/foreachlist).
168+
(Laruence)
169+
. Added support for using empty() on the result of function calls and
170+
other expressions (https://wiki.php.net/rfc/empty_isset_exprs).
171+
(Nikita Popov)
172+
. Added support for constant array/string dereferencing. (Laruence)
173+
. Improve set_exception_handler while doing reset.(Laruence)
174+
. Remove php_logo_guid(), php_egg_logo_guid(), php_real_logo_guid(),
175+
zend_logo_guid(). (Adnrew Faulds)
176+
. Drop Windows XP and 2003 support. (Pierre)
177+
178+
- Calendar:
179+
. Fixed bug #54254 (cal_from_jd returns month = 6 when there is only one Adar)
180+
(Stas, Eitan Mosenkis)
181+
182+
- Core:
183+
. Added boolval(). (Jille Timmermans)
184+
. Added "Z" option to pack/unpack. (Gustavo)
185+
. Implemented FR #60738 (Allow 'set_error_handler' to handle NULL).
186+
(Laruence, Nikita Popov)
187+
. Added optional second argument for assert() to specify custom message. Patch
188+
by Lonny Kapelushnik (lonny@lonnylot.com). (Lars)
189+
. Fixed bug #18556 (Engine uses locale rules to handle class names). (Stas)
190+
. Fixed bug #61681 (Malformed grammar). (Nikita Popov, Etienne, Laruence)
191+
. Fixed bug #61038 (unpack("a5", "str\0\0") does not work as expected).
192+
(srgoogleguy, Gustavo)
193+
. Return previous handler when passing NULL to set_error_handler and
194+
set_exception_handler. (Nikita Popov)
195+
196+
- cURL:
197+
. Added support for CURLOPT_FTP_RESPONSE_TIMEOUT, CURLOPT_APPEND,
198+
CURLOPT_DIRLISTONLY, CURLOPT_NEW_DIRECTORY_PERMS, CURLOPT_NEW_FILE_PERMS,
199+
CURLOPT_NETRC_FILE, CURLOPT_PREQUOTE, CURLOPT_KRBLEVEL, CURLOPT_MAXFILESIZE,
200+
CURLOPT_FTP_ACCOUNT, CURLOPT_COOKIELIST, CURLOPT_IGNORE_CONTENT_LENGTH,
201+
CURLOPT_CONNECT_ONLY, CURLOPT_LOCALPORT, CURLOPT_LOCALPORTRANGE,
202+
CURLOPT_FTP_ALTERNATIVE_TO_USER, CURLOPT_SSL_SESSIONID_CACHE,
203+
CURLOPT_FTP_SSL_CCC, CURLOPT_HTTP_CONTENT_DECODING,
204+
CURLOPT_HTTP_TRANSFER_DECODING, CURLOPT_PROXY_TRANSFER_MODE,
205+
CURLOPT_ADDRESS_SCOPE, CURLOPT_CRLFILE, CURLOPT_ISSUERCERT,
206+
CURLOPT_USERNAME, CURLOPT_PASSWORD, CURLOPT_PROXYUSERNAME,
207+
CURLOPT_PROXYPASSWORD, CURLOPT_NOPROXY, CURLOPT_SOCKS5_GSSAPI_NEC,
208+
CURLOPT_SOCKS5_GSSAPI_SERVICE, CURLOPT_TFTP_BLKSIZE,
209+
CURLOPT_SSH_KNOWNHOSTS, CURLOPT_FTP_USE_PRET, CURLOPT_MAIL_FROM,
210+
CURLOPT_MAIL_RCPT, CURLOPT_RTSP_CLIENT_CSEQ, CURLOPT_RTSP_SERVER_CSEQ,
211+
CURLOPT_RTSP_SESSION_ID, CURLOPT_RTSP_STREAM_URI, CURLOPT_RTSP_TRANSPORT,
212+
CURLOPT_RTSP_REQUEST, CURLOPT_RESOLVE, CURLOPT_ACCEPT_ENCODING,
213+
CURLOPT_TRANSFER_ENCODING, CURLOPT_DNS_SERVERS and CURLOPT_USE_SSL.
214+
(Pierrick)
215+
. Fixed bug #55635 (CURLOPT_BINARYTRANSFER no longer used. The constant
216+
still exists for backward compatibility but is doing nothing). (Pierrick)
217+
. Fixed bug #54995 (Missing CURLINFO_RESPONSE_CODE support). (Pierrick)
218+
219+
- Datetime
220+
. Fixed bug #61642 (modify("+5 weekdays") returns Sunday).
221+
(Dmitri Iouchtchenko)
222+
223+
- Hash
224+
. Added support for PBKDF2 via hash_pbkdf2(). (Anthony Ferrara)
225+
226+
- Intl
227+
. The intl extension now requires ICU 4.0+.
228+
. Added intl.use_exceptions INI directive, which controls what happens when
229+
global errors are set together with intl.error_level. (Gustavo)
230+
. MessageFormatter::format() and related functions now accepted named
231+
arguments and mixed numeric/named arguments in ICU 4.8+. (Gustavo)
232+
. MessageFormatter::format() and related functions now don't error out when
233+
an insufficient argument count is provided. Instead, the placeholders will
234+
remain unsubstituted. (Gustavo)
235+
. MessageFormatter::parse() and MessageFormat::format() (and their static
236+
equivalents) don't throw away better than second precision in the arguments.
237+
(Gustavo)
238+
. IntlDateFormatter::__construct and datefmt_create() now accept for the
239+
$timezone argument time zone identifiers, IntlTimeZone objects, DateTimeZone
240+
objects and NULL. (Gustavo)
241+
. IntlDateFormatter::__construct and datefmt_create() no longer accept invalid
242+
timezone identifiers or empty strings. (Gustavo)
243+
. The default time zone used in IntlDateFormatter::__construct and
244+
datefmt_create() (when the corresponding argument is not passed or NULL is
245+
passed) is now the one given by date_default_timezone_get(), not the
246+
default ICU time zone. (Gustavo)
247+
. The time zone passed to the IntlDateFormatter is ignored if it is NULL and
248+
if the calendar passed is an IntlCalendar object -- in this case, the
249+
IntlCalendar's time zone will be used instead. Otherwise, the time zone
250+
specified in the $timezone argument is used instead. This does not affect
251+
old code, as IntlCalendar was introduced in this version. (Gustavo)
252+
. IntlDateFormatter::__construct and datefmt_create() now accept for the
253+
$calendar argument also IntlCalendar objects. (Gustavo)
254+
. IntlDateFormatter::getCalendar() and datefmt_get_calendar() return false
255+
if the IntlDateFormatter was set up with an IntlCalendar instead of the
256+
constants IntlDateFormatter::GREGORIAN/TRADITIONAL. IntlCalendar did not
257+
exist before this version. (Gustavo)
258+
. IntlDateFormatter::setCalendar() and datefmt_set_calendar() now also accept
259+
an IntlCalendar object, in which case its time zone is taken. Passing a
260+
constant is still allowed, and still keeps the time zone. (Gustavo)
261+
. IntlDateFormatter::setTimeZoneID() and datefmt_set_timezone_id() are
262+
deprecated. Use IntlDateFormatter::setTimeZone() or datefmt_set_timezone()
263+
instead. (Gustavo)
264+
. IntlDateFormatter::format() and datefmt_format() now also accept an
265+
IntlCalendar object for formatting. (Gustavo)
266+
. Added the classes: IntlCalendar, IntlGregorianCalendar, IntlTimeZone,
267+
IntlBreakIterator, IntlRuleBasedBreakIterator and
268+
IntlCodePointBreakIterator. (Gustavo)
269+
. Added the functions: intlcal_get_keyword_values_for_locale(),
270+
intlcal_get_now(), intlcal_get_available_locales(), intlcal_get(),
271+
intlcal_get_time(), intlcal_set_time(), intlcal_add(),
272+
intlcal_set_time_zone(), intlcal_after(), intlcal_before(), intlcal_set(),
273+
intlcal_roll(), intlcal_clear(), intlcal_field_difference(),
274+
intlcal_get_actual_maximum(), intlcal_get_actual_minimum(),
275+
intlcal_get_day_of_week_type(), intlcal_get_first_day_of_week(),
276+
intlcal_get_greatest_minimum(), intlcal_get_least_maximum(),
277+
intlcal_get_locale(), intlcal_get_maximum(),
278+
intlcal_get_minimal_days_in_first_week(), intlcal_get_minimum(),
279+
intlcal_get_time_zone(), intlcal_get_type(),
280+
intlcal_get_weekend_transition(), intlcal_in_daylight_time(),
281+
intlcal_is_equivalent_to(), intlcal_is_lenient(), intlcal_is_set(),
282+
intlcal_is_weekend(), intlcal_set_first_day_of_week(),
283+
intlcal_set_lenient(), intlcal_equals(),
284+
intlcal_get_repeated_wall_time_option(),
285+
intlcal_get_skipped_wall_time_option(),
286+
intlcal_set_repeated_wall_time_option(),
287+
intlcal_set_skipped_wall_time_option(), intlcal_from_date_time(),
288+
intlcal_to_date_time(), intlcal_get_error_code(),
289+
intlcal_get_error_message(), intlgregcal_create_instance(),
290+
intlgregcal_set_gregorian_change(), intlgregcal_get_gregorian_change() and
291+
intlgregcal_is_leap_year(). (Gustavo)
292+
. Added the functions: intltz_create_time_zone(), intltz_create_default(),
293+
intltz_get_id(), intltz_get_gmt(), intltz_get_unknown(),
294+
intltz_create_enumeration(), intltz_count_equivalent_ids(),
295+
intltz_create_time_zone_id_enumeration(), intltz_get_canonical_id(),
296+
intltz_get_region(), intltz_get_tz_data_version(),
297+
intltz_get_equivalent_id(), intltz_use_daylight_time(), intltz_get_offset(),
298+
intltz_get_raw_offset(), intltz_has_same_rules(), intltz_get_display_name(),
299+
intltz_get_dst_savings(), intltz_from_date_time_zone(),
300+
intltz_to_date_time_zone(), intltz_get_error_code(),
301+
intltz_get_error_message(). (Gustavo)
302+
. Added the methods: IntlDateFormatter::formatObject(),
303+
IntlDateFormatter::getCalendarObject(), IntlDateFormatter::getTimeZone(),
304+
IntlDateFormatter::setTimeZone(). (Gustavo)
305+
. Added the functions: datefmt_format_object(), datefmt_get_calendar_object(),
306+
datefmt_get_timezone(), datefmt_set_timezone(),
307+
datefmt_get_calendar_object(), intlcal_create_instance(). (Gustavo)
308+
309+
- MCrypt
310+
. mcrypt_ecb(), mcrypt_cbc(), mcrypt_cfb() and mcrypt_ofb() now throw
311+
E_DEPRECATED. (GoogleGuy)
312+
313+
- MySQLi
314+
. Dropped support for LOAD DATA LOCAL INFILE handlers when using libmysql.
315+
Known for stability problems. (Andrey)
316+
. Added support for SHA256 authentication available with MySQL 5.6.6+.
317+
(Andrey)
318+
319+
- PCRE:
320+
. Deprecated the /e modifier
321+
(https://wiki.php.net/rfc/remove_preg_replace_eval_modifier). (Nikita Popov)
322+
. Fixed bug #63284 (Upgrade PCRE to 8.31). (Anatoliy)
323+
324+
- pgsql
325+
. Added pg_escape_literal() and pg_escape_identifier() (Yasuo)
326+
327+
- SPL
328+
. Fix bug #60560 (SplFixedArray un-/serialize, getSize(), count() return 0,
329+
keys are strings). (Adam)
330+
331+
- Tokenizer:
332+
. Fixed bug #60097 (token_get_all fails to lex nested heredoc). (Nikita Popov)
333+
334+
- Zip:
335+
. Upgraded libzip to 0.10.1 (Anatoliy)
336+
337+
- Fileinfo:
338+
. Fixed bug #63248 (Load multiple magic files from a directory under Windows).
339+
(Anatoliy)
340+
341+
- General improvements:
342+
. Implemented FR #46487 (Dereferencing process-handles no longer waits on
343+
those processes). (Jille Timmermans)
344+
345+
<<< NOTE: Insert NEWS from last stable release here prior to actual release! >>>

Zend/tests/bug61025.phpt

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
--TEST--
2+
Bug #61025 (__invoke() visibility not honored)
3+
--FILE--
4+
<?php
5+
6+
Interface InvokeAble {
7+
static function __invoke();
8+
}
9+
10+
class Bar {
11+
private function __invoke() {
12+
return __CLASS__;
13+
}
14+
}
15+
16+
$b = new Bar;
17+
echo $b();
18+
19+
echo $b->__invoke();
20+
21+
?>
22+
--EXPECTF--
23+
Warning: The magic method __invoke() must have public visibility and cannot be static in %sbug61025.php on line %d
24+
25+
Warning: The magic method __invoke() must have public visibility and cannot be static in %sbug61025.php on line %d
26+
Bar
27+
Fatal error: Call to private method Bar::__invoke() from context '' in %sbug61025.php on line %d

Zend/zend_closures.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,6 @@ static zend_object_value zend_closure_clone(zval *zobject TSRMLS_DC) /* {{{ */
291291
}
292292
/* }}} */
293293

294-
295294
int zend_closure_get_closure(zval *obj, zend_class_entry **ce_ptr, zend_function **fptr_ptr, zval **zobj_ptr TSRMLS_DC) /* {{{ */
296295
{
297296
zend_closure *closure;

Zend/zend_closures.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,6 @@
2424

2525
BEGIN_EXTERN_C()
2626

27-
#define ZEND_INVOKE_FUNC_NAME "__invoke"
28-
2927
void zend_register_closure_ce(TSRMLS_D);
3028

3129
extern ZEND_API zend_class_entry *zend_ce_closure;

0 commit comments

Comments
 (0)