unserialize($foo, ["allowed_classes" => ["MyClass", "MyClass2"]]);
- proc_open():
- The maximum number of pipes used by proc_open() was previously limited by
+ . The maximum number of pipes used by proc_open() was previously limited by
hardcoded value of 16. This limit is now removed and the number of pipes is
effectively limited by the amount of memory available to PHP.
+ . New Windows only configuration option "blocking_pipes" can be used to
+ force blocking reads on child process pipes. This covers several
+ edge cases in CLI usage however can lead to dead locks. Also, this
+ correlates with the new stream context options for pipes.
- array_column():
The function now supports an array of objects as well as two-dimensional
arrays. Only public properties are considered, and objects that make use of
__get() for dynamic properties must also implement __isset().
+- stream_context_create()
+ It accepts now a Windows only configuration
+ array("pipe" => array("blocking" => <boolean>)) which forces blocking reads
+ on pipes. This option should be used carefully because due to the
+ platform restrictions dead locks on pipe buffers are possible.
+
========================================
6. New Functions
========================================
p. TSRM changes
q. gc_collect_cycles() is now hookable
r. PDO uses size_t for lengths
+ u. Streams changes
2. Build system changes
a. Unix build system changes
Instead of reallocation and copying string on each ZEND_ADD_STRING/VAR/CAHR,
collect all the strings and then allocate and construct the resulting string once.
+ u. Streams changes
+ - It is possible to do blocking reads on Windows pipes. It can be done either
+ using context stream option PHP_STREAM_OPTION_PIPE_BLOCKING or
+ adding STREAM_USE_BLOCKING_PIPE when opening the stream.
========================
2. Build system changes