Releases: xp-framework/core
Releases · xp-framework/core
11.3.1: Comparison fix
Bugfixes
- Fixed Cannot access property starting with "\0") in util.Comparison
(@thekid)
11.3.0: I/O stream string representations
11.2.0: PHP 8.2 types
Bugfixes
- Merged PR #309: Use AES-128-CBC instead of DES (in
util.Secret);
the latter is considered legacy
(@thekid) - Fixed compatibility with PHP 8.2 for invalid timezones. PHP now reverts
toUTCand displays a startup warning if the timezone name is unknown.
(@thekid)
Features
- Added PHP 8.2
true,falseandnulltypes, mapping them to bool
and void, respectively. See https://wiki.php.net/rfc/true-type and
https://wiki.php.net/rfc/null-false-standalone-types
(@thekid) - Replaced strcmp() with the
<=>operator in theutil.Bytesand
io.Pathclasses, removing function call overhead
(@thekid)
11.1.2: Parameter default fix
Bugfixes
- Fixed
lang.reflect.Parameter::getDefaultValue()to parse parameter
annotations correctly
(@thekid)
11.1.1: Annotation parsing fixes
10.15.1: Annotation parsing fixes
11.1.0: Preliminary PHP 8.2 support
Features
- Improved script loading performance by deferring requiring modules until
class loading time. See xp-runners/reference#85
(@thekid) - Added preliminary PHP 8.2 support by fixing various issues throughout
the code base. Compatibility is tracked in issue #304
(@thekid) - Cast given argument to string in
io.streams.MemoryInputStream. Passing
null will no longer yield warnings in PHP 8.1
(@thekid)
11.0.0: Cleanup & attributes
This major release cleans up deprecated and unused features, and takes
the next step of phasing out XP annotation syntax in favor of PHP 8's
attributes.
Heads up!
- Merged PR #299: Remove xp::errorAt(). If necessary, access the static
xp::$errorsmap directly
(@thekid) - Merged PR #298: Remove Runtime::halt() and SystemExit - functionality
was never used in any library
(@thekid) - Merged PR #274: Compact maps with a single key/value pair into one line
(@thekid) - Merged PR #297: Remove generic application and service exceptions, these
classes we unused.
(@thekid) - Merged PR #296: Remove lang.Runtime::loadLibrary() - the PHP function
dl()has been regarded more or less deprecated and has been removed
from various SAPIs in the past, see https://www.php.net/dl
(@thekid) - Merged PR #295: Remove lang.Thread and lang.IllegalThreadStateException,
these were Un*x only, wrapping ext/pcntl library functions
(@thekid) - Merged PR #294: Remove resource provider and import facility - @thekid
- Merged PR #293: Remove deprecated timezone methods - @thekid
- Removed deprecated
io.streams.MemoryInputStream::getBytes()method
(@thekid) - Merged PR #292: Remove deprecated reader and writer methods from io.streams
(@thekid) - Removed deprecated lang.Primitive::$DOUBLE (replaced by
FLOAT)
(@thekid) - Merged PR #291: Remove io.FileUtil - replaced by the
io.Filesclass
(@thekid) - Merged PR #290: Remove util.PropertyManager - replaced by libraries such
asxp-forge/inject
(@thekid) - Merged PR #289: Remove util.DateUtil and util.DateMath - replaced by
theutil.Datesclass
(@thekid) - Merged PR #288: Remove util.Calendar class - superseded by the timezone
aware API byutil.TimeZoneTransition
(@thekid) - Merged PR #287: Remove util.Component and util.Visitor - these classes
were unused
(@thekid) - Merged PR #286: Remove util.Configurable and util.ConfigurationException,
unused except for the anti-pattern classrdbms.ConnectionManager.
(@thekid) - Renamed
masterbranch tomain- @thekid
RFCs
- Implemented 2nd part of xp-framework/rfc#335: Drop annotation key/value
pair syntax, see PR #237. Use PHP 8 named arguments instead!
(@thekid) - Implemented 2nd part of xp-framework/rfc#336: Deprecating XP annotation
syntax. This will raise E_USER_DEPRECATED warnings, see PR #284
(@thekid)
10.15.0: ClassPathPropertySource
10.14.0: Process execution
Features
- Merged PR #282: Allow overwriting descriptors passed to proc_open() in
lang.Processconstructor andnewInstance(). This can be used for
redirection or passing through standard I/O.
(@thekid) - Merged PR #281: Add
lang.CommandLine::resolve(). This method resolves
given commands against the system path and returns all found executables,
much like Windows'whereor POSIX'which -acommands. It supersedes
lang.Process::resolve(), which becomes deprecated.
(@thekid)