1PHP 7.2 INTERNALS UPGRADE NOTES 2 31. Internal API changes 4 a. Path related functions 5 b. php_win32_get_random_bytes() 6 c. nice() Windows implementation 7 d. ZEND_ACC_CLONE removed 8 e. IS_TYPE_IMMUTABLE removed 9 f. zend_arg_info.class_name removed 10 g. ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX changed 11 h. valid_symbol_table removed 12 132. Build system changes 14 a. Unix build system changes 15 b. Windows build system changes 16 17 183. Module changes 19 20======================== 211. Internal API changes 22======================== 23 24 a. Path related functions 25 - CWD_API void realpath_cache_del(const char *path, size_t path_len); 26 - CWD_API realpath_cache_bucket* realpath_cache_lookup(const char *path, size_t path_len, time_t t); 27 - PHPAPI void php_clear_stat_cache(zend_bool clear_realpath_cache, const char *filename, size_t filename_len); 28 - PHPAPI void php_stat(const char *filename, size_t filename_length, int type, zval *return_value); 29 30 b. php_win32_get_random_bytes() 31 The internal randomness source on Windows switched to use CNG API. 32 33 c. nice() now have a Windows alternative that is implemented in win32/nice.c, using 34 SetPriorityClass(). See the implementation for more in-depth details. This also 35 defines HAVE_NICE. 36 37 d. ZEND_ACC_CLONE is removed, but was not used in previous versions 38 39 e. IS_TYPE_IMMUTABLE is removed, IS_TYPE_COPYABLE can be used instead 40 Z_IMMUTABLE() check function is still available 41 42 f. zend_arg_info class_name member is removed, use ZEND_TYPE_NAME instead 43 44 g. ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX classname option is removed 45 use ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX for simple type 46 use ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX for object 47 48 h. valid_symbol_table is removed from executor_globals. 49 Use EG(active) instead of removed EG(valid_symbol_table) 50 51======================== 522. Build system changes 53======================== 54 55 a. Unix build system changes 56 57 b. Windows build system changes 58 59 . Minimum supported Windows versions are Windows 7/Server 2008 R2. 60 . --enable-one-shot configure option is removed, --with-mp is usable. 61 . The new binary tools SDK is required for Windows builds, the 62 documentation is available under https://wiki.php.net/internals/windows/stepbystepbuild_sdk_2 63 . Visual Studio 2017 is utilized for the Windows builds 64 . Clang build with ASAN is supported with clang 5+ 65 66======================== 673. Module changes 68======================== 69 70- Pcre: 71 . php_pcre_replace and php_pcre_replace_impl expect a zend_string instead of a zval and 72 is_callable_replace options is removed: 73 - PHPAPI zend_string *php_pcre_replace(zend_string *regex, zend_string *subject_str, char *subject, int subject_len, zend_string *replace_str, int limit, int *replace_count); 74 - PHPAPI zend_string *php_pcre_replace_impl(pcre_cache_entry *pce, zend_string *subject_str, char *subject, int subject_len, zend_string *replace_str, int limit, int *replace_count); 75 76- Session: 77 . php_session_start()/session_reset_id() return value is changed from void to int. 78 It returns SUCCESS/FAILURE. 79 . Session module manages session status correctly. 80 81- OpenSSL: 82 . Windows builds ship with OpenSSL 1.1 by default, lower versions are still supported with custom deps. 83