All notable changes to this project will be documented in this file.
The format based on Keep a Changelog and this project adheres to Semantic Versioning.
- Added custom list of arg info definition (Phalcon only) #2341
- Fixed left
nullwithstringcondition #2299 - Improved support of
mixedtype #2330 - Fixed Interfaces Breaking Child Projects Of Same Root Level Namespace #2334
0.15.2 - 2021-10-24
- Fixed output of
stringtype INI in globals #2312
0.15.1 - 2021-10-08
- Fixed support of
stringtype in struct globals #2308
0.15.0 - 2021-10-05
- Removed
.zepfrom stubs filenames #2273
0.14.0 - 2021-09-18
- Added support for
require_once#2253
- Bumped minimal version of Zephir Parser to
1.4.1. #2284
0.14.0-beta.3 - 2021-08-06
- Fixed class entry generation of external class #2261
0.14.0-beta.2 - 2021-08-06
- Fixed missing
config/directory inzephir.phar#2259
0.14.0-beta.1 - 2021-08-06
- Fixed nullable dynamic argument definition #2245
- Changed detection of external class entries #2213
0.13.5 - 2021-05-09
- Fixed
zephir buildcommand #2240 - Fixed
zephir generatewhen processing Closure #2241 - Fixed stubs generation with variable-length argument #2239
0.13.4 - 2021-04-26
0.13.3 - 2021-04-25
- Fixed nullable array #1094
- Fixed default value detection with Reflection (only PHP 8.0) #1134
- Updated supported list of class entries for PHP date extension #2226
- Fixed unset from class property #1259
- Added support syntax assign-bitwise operators #1103
0.13.2 - 2021-04-10
- Fixed default value of nullable string parameter #2180
- Fixed cast of
stringtointandfloat#828 - Fix
uintcast tounsigned intin function params #812 - Fixed
nullstrict check when variable isstringtype #2186
0.13.1 - 2021-03-31
- Added jobs
-j, --jobsoption forzephir compile#2174
- Fixed not used arginfo for interface static method without parameters (PHP
>= 8.0only) #2178 - Fixed
zephir installcommand #2175
0.13.0 - 2021-03-25
- Dropped support of PHP
< 7.4versions #2111 - Removed call of
generatecommand insidecompilecall #2150 - Removed call of
compilecommand insideinstallcall #2150
- Fixed parameters type detection in methods/functions (PHP
>= 8.0only) - Fixed not adding all build directories #2144
0.12.21 - 2021-03-05
- Fixed path separators in generated
config.m4file on Windows #2153
0.12.20 - 2020-12-16
- Added supports void type return value for stubs phalcon/ide-stubs#50 #1977
- Fixed missing kernel directory at build time ice/framework#271
- Fixed stubs generation for case with array declaration with square brackets in params
- Fixed parameters positioning for
implode()php function #2120
0.12.19 - 2020-05-13
- Fixed duplicate definition with GCC 10 ice/framework#266
- Fixed initialization of object properties with default values when the object is an instance of a child class #2089
- Improved stubs generation for methods which may return object or null #2092
0.12.18 - 2020-04-25
- In some cases for C "control characters" aren't properly escaped #2065
- Zephir ignored property visibility and has not thrown error when setting private/protected properties in scope that shouldn't intend for it #2078, phalcon/cphalcon#14810, phalcon/cphalcon#14766
0.12.17 - 2020-02-14
- On some platforms special alpha characters aren't correctly escaped. #2058
- Changed the internal DI environment mode when compile PHAR #2049
0.12.16 - 2020-01-16
- Do not dump config file if config was changed.
Usually we need dump configuration exactly once - at project initialization.
There are no needs to dump it for every config change. Also, this patch
removes
Config::$changedvariable that is no longer needed #2035 - Use a different path for the Kernel cache if possible. This patch fixes a cache collision issue. The issue is after creating the cache and filling it with a project-specific configuration, there is no way to invalidate it. Any next project will use the same Kernel cache and the same Kernel configuration (if any). #2036
- Fixed
-VCLI flag purpose. Initially it was designed to disable verbose mode on the fly, e.g. to override project configuration for a single Zephir pass. This behavior was returned back. - Fix increment array elements operation #2020
- Fixed compound addition and subtraction assignment operators for static properties #2038
- Improved type hint for arrays when generating stubs #2026
0.12.15 - 2019-12-12
- Removed
uinttypedef usage
0.12.14 - 2019-12-11
- Removed
zend_uinttypedef usage
0.12.13 - 2019-12-08
- Fixed PHP 7.4 support for macOS phalcon/cphalcon#14577
- Removed
uintandulongtypedefs usage
0.12.12 - 2019-11-25
- Option to set banner for stubs generator #1987
- Calling object methods from static context yields segmentation fault when
internal-call-transformationis set toTRUE#2000 - Certain method calls fail when called from static context when
internal-call-transformationis set toTRUE#2005 - Method context loses track of
thisafter calling static method wheninternal-call-transformationis set toTRUE#2007 - Fixed incorrect stubs generation for return type hint #1990
- Fixed incorrect stubs generation for classes in the same namespace #2016
0.12.11 - 2019-11-02
- Fixed arithmetical operations with
zvalswhich storesdoublenumbers - Fixed updating static variables in the loop which represents
doubleandintegerdata types #1494 - Fixed casting char into another of a different type #1988
- Fixed
internalmethods definition wheninternal-call-transformationis enabled #1956 - Fixed aliases using in the
usestatement when generating stubs #1986 - Fixed incorrect namespace on type hinted return when generating API docs #1229
0.12.10 - 2019-10-19
- Fixed incorrect behavior in
zephir_get_globalifzvalreference count <= 1 #1961
- Removed
--vernumoption from the help for regular commands - Removed
voidfrom the return type hint in the generated stubs #1977 - Remove no longer supported
TSRMLS_CCusage #1865
- Disabled PHP warnings for PHP >= 7.3.0 to be able correct work with lowest versions of dependencies zendframework/zend-code#160
- Introduced support of multi line
@parambody for generated stubs #1968
0.12.9 - 2019-10-14
- Added a single hyphen version of
dumpversionoption (just-dumpversion) - Added
--vernumoption to print compiler version as integer
- Create local
.zephironly when necessary - Fixed IDE stubs generation #1778
- Fixed segfault on cast
IS_UNDEFto array #1941 - Disables some regression changes introduced in the version
0.12.5#1941 (comment) - Fixed memory leak on update array #1937
- Fixed IDE stubs generation for classes that extends base classes #1907
- Proper escape slashes in strings #1495
- Print warning during the code generation if the
timecopextension was detected #1950 - Improved error handling to not print PHP stack traces if
ZEPHIR_DEBUGis not set
- Removed no longer used
zephir_dtormacro
0.12.8 - 2019-10-03
- Fixed
zephir_preg_matchto useZVAL_NULLinstead ofZEPHIR_NULL#1946 - Fixed
Extension\InternalClassesTesttest to be able run full test suite without Phalcon #1949
0.12.7 - 2019-10-03
- Fixed regression introduced in
0.12.5for those users who doesn't use bundledext/pcre/php_pcre.h#1944 #1940 - Fixed sitemap API generator #1940
0.12.6 - 2019-10-03
- Fixed regression introduced in
0.12.5for those users who doesn't use bundledext/json/php_json.h#1940
0.12.5 - 2019-10-02
- Update
zend_update_static_propertyto be compatible with PHP >= 7.3 #1904 - Improved error handling
- Fixed IDE stubs generation to properly generate return type hint for
var | null#1922 - Fixed updating Super Globals #1917
- Fixed casting variables to array #1923
- Fixed work with constant which are not present #1928
- Fixed access to Super Globals #1934, phalcon/cphalcon#14426
0.12.4 - 2019-09-22
- Fixed install template
0.12.3 - 2019-09-22
- Fixed concatenation support of strings with
doublenumbers #1893 - Fixed 'void' return type hint being ignored #1908
- Fixed updating array properties #1915
0.12.2 - 2019-08-05
- Introduced initial ability to generate
zend_module_deps#1900, phalcon/cphalcon#13702, phalcon/cphalcon#13794
- Write errors compiler to stderr if available
0.12.1 - 2019-07-30
- Added initial bash completion support (see
zephir-autocompletefile)
- Remove HAVE_SPL usage phalcon/cphalcon#14215
- Remove not used redundant command line options
- Cleaning up redundant CLI options
- Fixed segfault when auto-loading class with syntax error #1885
- Optimize memory usage #1882
- Fixed modifying array values in loops #1879
0.12.0 - 2019-06-20
- PHP 5.x is no longer supported
- The minimal Zephir Parser version is 1.3.0
- Fixed CLI runner for Windows #1857
- Fixed segfault with fetching and opcache #1855
- Extended classes can't access their private variables #1851
- Incorrect usage of
zend_declare_class_constant_exphalcon/cphalcon#14160, https://bugs.php.net/bug.php?id=78121 - Incorrect implementation of ArrayAccess methods #1871
- Fixed exception on call undefined method #1863
0.11.12 - 2019-03-24
- Compilation error for instanceof #1828
- Fixed
array_shiftbehavior to mimicry PHP's "change by reference" #1831 - Fixed reference counting while changing object's properties that are arrays #1833
0.11.11 - 2019-02-26
- Objects are not traversable with
foreach#1818 #1595 - Recursion for array_push on PHP 7 #1140
- Invalid array initialization #1159
0.11.10 - 2019-02-23
- Moved internal cache and logs to the user's home directory.
- On macOS Zephir will use
XDGif it is possible, otherwise$HOME/Library - On Windows Zephir will use
LOCALAPPDATAif it is possible, otherwise home dir as a base path - In any other cases, e.g. Linux, BSD and so on, Zephir will use
XDGif it is possible, otherwise$HOME/.localand$HOME/.cache
- On macOS Zephir will use
- Per project cache used for temporary operations was moved to
%CWD%/.zephir/%VERSION%where%CWD%is the current working directory and%VERSION%is the current Zephir version e.g.0.11.10-4a825b8
- Array of object as return type is reported to PHP as type, not array #1779
- Use namespace as a prefix for ini name #1604
- Fixed calling anonymous functions by resolving context #1751
- Fixed a bug when accessing super-global variables that do not exist (only for PHP >= 7.0 ) #1775
- Fixed incorrect behavior during work with ArrayAccess #1061, #1400
0.11.9 - 2019-01-15
- Fixed
zend_closuredeclaration to reflect PHP 7.3 changes
0.11.8 - 2018-12-01
- Fixed compilation error with inheritance of prototype interfaces #1758
- Fixed compilation error when a new file is added or removed to the project #1776
0.11.7 - 2018-11-27
- The cache directory, formerly known as
.temp, used for temporary operations was moved to the new.zephirdirectory. The algorithm for calculating cache path is as follows:%CWD%/.zephir/%HASH%/cache/IRwhere%CWD%is the current working directory and%HASH%means a hash calculated from the current Zephir version, environment and configuration - The compiler's messages was divided into streams. Thus, now it is possible to redirect compiler's
output as follows:
zephir generate 2> errors.log 1> /dev/null - Fixed type hints for scalar arguments for PHP < 7.2 #1658
- Coloring the compiler messages in the terminal is temporarily disabled
- Fixed incorrect behavior of
func_get_argandfunc_get_argsfunctions for PHP 7.3
0.11.6 - 2018-11-19
0.11.4 - 2018-11-18
- Introduced a brand new CLI interface
- The preferred method of installation is to use the Zephir PHAR which can be downloaded from the most recent Github Release
- Added
--no-devoption to force building the extension in production mode #1520 - Zephir development mode will be enabled silently if your PHP binary was compiled in a debug configuration #1520
- Added missed CLI option
--export-classesto flag whether classes must be exported. If export-classes is enabled all headers are copied toinclude/php/ext.
- Fixed regression introduced in the 0.10.12 related to
requirefile using protocols #1713
0.11.3 - 2018-11-13
- Remove legacy installers and provide a common way to install Zephir
#1714. Supported installation strategies are:
- Install as a global application (using
composer global require) - Install as a PHAR file. (this feature currently in the testing phase and not released officially)
- Install as a Git clone (using
git cloneandcomposer installinside cloned project) - Install as a project's dependency (using
composer require)
- Install as a global application (using
0.11.2 - 2018-11-11
- Introduced an ability to pack project into one
zephir.pharfile (for PHP 7.1 and later)
- Composer now is a mandatory dependency
- Improved Zephir's Compiler error reporting
- PHP 5.5 no longer supported
- Correct return types hint check
0.11.1 - 2018-10-19
- Initial support of PHP 7.3 (ported from the 0.10.x branch)
0.11.0 - 2018-08-05
- Add type hints for scalar arguments and return values in ZendEngine 3 1656
0.10.14 - 2018-11-20
- Fixed incorrect behavior of
func_get_argandfunc_get_argsfunctions for PHP 7.3 (backported from the upstream)
0.10.13 - 2018-11-18
- Fixed regression introduced in the 0.10.12 related to
requirefile using protocols #1713 (backported from the upstream) - Fixed incorrect behavior of
requirestatement for ZendEngine3 #1621 #1403 #1428 (backported from the upstream)
0.10.12 - 2018-10-19
- Initial support of PHP 7.3
0.10.11 - 2018-08-05
- Allow extension to be loaded prior to the tests
- Fixed Copy-On-Write violation for arrays zvals
- Fixed some testing settings 5deb64a
- Fixed casting resource to int (only ZendEngine 3) #1524