Releases: xp-framework/core
Releases · xp-framework/core
6.2.5: I/O goodness
Heads up!
- Added class constants for Archive::open() and deprecated
ARCHIVE_*.
See #80
(@thekid) - Added class constants for File::open() and deprecated
FILE_MODE_*.
See #79
(@thekid) - Deprecated io.ZipFile class - use GzDecompressingInputStream instead!
See #78
(@thekid) - Deprecated io.SpoolDirectory class
(@thekid)
Features
- Merged #83: New io.Path::real() shorthand
(@thekid) - Merged #82: Path::asFile() and asFolder() prevent
conditionals
(@thekid) - Merged #81: Feature: Folder entries
(@thekid) - Changed io.Path::equals() to perform normalization before comparing
(@thekid) - Changed io.File::open() to return the file itself, enabling fluent API
usage:$f= (new File('test'))->open(File::READ);.
(@thekid) - Changed io.streams.TextWriter to accept output streams or I/O channels
as its constructor argument, and io.streams.TextReader to accept input
streams, strings or I/O channels as their constructor arguments.
(@thekid) - Merged #77: Text reader iteration
(@thekid)
6.2.4: Unittest command line features
Heads up!
- Deprecated XPI (XP Installer). Use Composer or Glue instead.
(@thekid)
Features
- Merged #75: Support for new
unittest -wcommand line.
See https://github.com/xp-framework/xp-runners/releases/tag/v5.3.0
(@thekid) - Made
unittest -econsistent withxp -e: Add ability to omit trailing
semicolon, support leading opening PHP tag, code piped via stdin.
(@thekid)
6.2.3: Cleanup
Heads up!
- Deprecated RandomCodeGenerator and RandomPasswordGenerator classes from
the security.password package
(@thekid) - Deprecated io.sys.StdStream class, superseded by io.streams API
(@thekid) - Deprecated
text.formatandtext.parserAPIs.
(@thekid) - Deprecated io.SearchableStream class, superseded by text.Tokenizer API
(@thekid) - Deprecated security.Policy class and API
(@thekid)
Features
- Made ResourceProvider useable via
new import("lang.ResourceProvider").
This way, you don't need to force its loading by adding e.g. a call to
XPClass::forName() to the static initializer / constructor / etcetera.
(@thekid) - Made typeof() behave consistent with reflection on callable type hint.
(@thekid) - Made util.log.LogCategory's first parameter optional, using "default"
as identifier if omitted.
(@thekid)
Bugfixes
6.2.2: Function type fixes
6.2.1: Performance optimization
6.2.0: Null handling
Heads up!
- Changed
lang.XPClassto load the reflection instance lazily. This way,
we can defer class loading until we actually access a details requiring
the reflection instance; and thus speed up iterating a packages' classes,
for instance.
(@thekid) - Deprecated
null()core functionality and rewrote codebase to do
without it. See pull request #70
(@thekid) - Deprecated
delete()core functionality - use theunsetlanguage
construct instead. See pull request #69
(@thekid)
Features
6.1.1: @type for fields
6.1.0: Traits, XP 7 roadmap part 1
Heads up!
- Deprecated uses() core functionality - use the
usestatement and PHP's
namespaces instead. This also deprecates classes in the global namespace
and the "package"-classes introduced in xp-framework/rfc#37.
(@thekid) - Deprecated raise() core functionality - use the
throwstatement
instead, it also uses lazy classloading for namespaced classes.
(@thekid) - Removed deprecated support for "mixed", "char", "*", "array" and
"array<string, string>"' in Type::forName(), see #64
(@thekid) - Removed peer.server.Server::addListener() and related classes which had
been deprecated since August 2006. See pull request #63
(@thekid) - Deprecated
lang.ClassLoader::defineType(string, string, var)usage.
Its second parameter now expects a map containing "kind" (either "class",
"trait" or "interface"), "extends", "implements" and "use" (arrays of
type references - either XPClass instances or strings).
(@thekid)
RFCs
- Implemented xp-framework/rfc#292: Create anonymous instances from traits
withnewinstance(). See pull request #60
(@thekid)
Features
- Added support for
/** @var [type] */for fields.
http://www.phpdoc.org/docs/latest/references/phpdoc/tags/var.html
(@thekid) - Added
lang.XPClass::isTrait()andlang.XPClass::getTraits()methods.
(@thekid)
6.0.1: Bugfix release
This release contains the following bugfixes:
- Added code compensating for removed hex support in strings in PHP7 - @thekid
- Added GzDecompressingInputStream::header() method - @thekid
- Fixed GzDecompressingInputStream not supporting gzip data with embedded
original filenames - @thekid
6.0.0
Heads up!
- Added experimental support HHVM support. The version
tested successfully while writing this is 3.6.0-dev. See #56
(@thekid) - Added PHP 7.0 forward compatibility for the Catchable "Call to a member
function" functionality
and throw aNullPointerException.
(@thekid) - Made xp-framework available via Composer
(@thekid) - Refactor fatal error handling, see #30 - (@thekid)
- Changed Console class to throw exceptions if read and/or write operations
are invoked outside of a console environment - (@thekid, @kiesel) - Removed deprecated
lang.Enum::membersOf()method - (@thekid) - Removed deprecated static getProxyClass() and newProxyInstance()
methods from the unittest.mock.MockProxyBuilder class - (@thekid) - Removed deprecated methods in lang.archive.Archive:
- addFileBytes() - replaced by addFile()
- add() - replaced by addBytes()
(@thekid)
- Removed deprecated methods in util.Date:
- mktime() - replaced by create()
- fromString() - handled by regular constructor
(@thekid)
- Removed deprecated add*() methods in util.TimeSpan class - (@thekid)
- Removed support for deprecated multi-value annotations - (@thekid)
- Removed deprecated lang.ChainedException - (@thekid)
- Removed deprecated text.CSVGenerator and text.parser.CSVParser classes.
Use https://github.com/xp-framework/csv instead - (@thekid) - Removed deprecated Primitive::$[BOOLEAN, INTEGER] and Type::$ANY- (@thekid)
- Removed deprecated lang.types.Number::floatVal() - (@thekid)
- Minimum PHP version reqired is now PHP 5.4.0 - (@thekid)
- Removed deprecated
assertArray(),assertObject(),assertEmpty(),
assertNotEmpty(),assertClass()andassertSubclass()methods from
unittest.TestCase - (@thekid) - Changed xp::ENCODING to 'utf-8', all strings are now per default to be
regarded as containing this charset except where explicitely stated
otherwise! - (@thekid) - Classes are now only referenceable by their namespaced names except
for those in thelangpackage (and subpackages thereof) - (@thekid) - Removed support for
__genericstyle generics which have been deprecated
since the implementation of RFC #193 - (@thekid) - Removed deprecated
xp::registry()function, which has been superseded
by the staticxp::$registrymember. Continue considering this a core
internal API, though! (@thekid) - Removed obsolete top-level
guipackage - (@thekid) - Removed deprecated
ref()andderef()functionality - (@thekid) - Moved classes inside text.util - Random(Code|Password)Generator to the
package security.password - (@thekid) - Moved classes inside scriptlet.rpc to webservices.rpc - (@thekid)
RFCs
- Implemented RFC #291: Stricter error handling (@thekid)
- Implemented RFC #289:
Streamclass deprecation, introduceChannel
(@thekid) - Implemented RFC #290: New Path class (@thekid)
- Implemented RFC #288: Deprecate LONG_MIN / LONG_MAX (@thekid)
- Implemented RFC #287: Get rid of tools (@thekid)
- Implemented RFC #184: ArrayMap and ArrayList - (@thekid)
- Implemented RFC #286: Function types - (@thekid)
- Implemented RFC #283: Unittest closure actions - (@thekid)
- Implemented RFC #276: Define classes with annotations - (@thekid)
- Implemented RFC #282: Generic type variables - (@thekid)
- Implemented RFC #98: Generic Filter interface - (@thekid)
- Implemented RFC #266: Extend the XP typesystem - (@thekid)
- Implemented RFC #281: PHP 5.4.0 - (@thekid)
- Implemented RFC #146: Unicode - (@thekid)
- Implemented RFC #136: PHP namespaces adoption. All classes in the XP
framework are now in PHP 5.3 namespaces - (@thekid) - Implemented RFC #136: PHP namespaces adoption. All classes in the XP
framework are now in PHP 5.3 namespaces - (@thekid) - Implemented RFC #279: Newinstance with closures in #2
(@thekid) - Implemented RFC #186: Drop SAPI feature alltogether; after it was
deprecated since 5.9.0 - (@thekid) - Implemented RFC #262: Split up framework into minimal pieces:
- Extracted
util.telephonyinto https://github.com/xp-framework/telephony - Extracted
xmlinto https://github.com/xp-framework/xml - Extracted
xp.codegeninto https://github.com/xp-framework/codegen - Extracted
peer.webdavinto https://github.com/xp-framework/webdav - Extracted
peer.sieveinto https://github.com/xp-framework/sieve - Extracted
peer.ircinto https://github.com/xp-framework/irc - Extracted
peer.newsinto https://github.com/xp-framework/news - Extracted
peer.mailinto https://github.com/xp-framework/mail - Extracted
peer.ldapinto https://github.com/xp-framework/ldap - Extracted
peer.httpinto https://github.com/xp-framework/http - Extracted
peer.ftpinto https://github.com/xp-framework/ftp - Extracted
imginto https://github.com/xp-framework/imaging - Extracted
scriptletinto https://github.com/xp-framework/scriptlet - Extracted
webservicesinto https://github.com/xp-framework/webservices - Extracted
webservices.restinto https://github.com/xp-framework/rest - Extracted
rdbmsinto https://github.com/xp-framework/rdbms - Extracted
io.archive.zipinto https://github.com/xp-framework/zip - Extracted
text.spellinginto https://github.com/xp-framework/spelling - Extracted
text.parserinto https://github.com/xp-framework/parser - Extracted
text.csvinto https://github.com/xp-framework/csv - Extracted
text.docletinto https://github.com/xp-framework/doclet - Extracted
remoteinto https://github.com/xp-framework/remote
(@kiesel, @thekid)
- Extracted
Bugfixes
- Fixed problem with enum member auto-initialization and non-public static
properties.
(@thekid) - Fixed #38: Use of undefined constant STR_ENC- (@thekid)
- Fixed #37: var not assignable from var?! - (@thekid)
- Fixed #34: FunctionType doesn't load classes - (@thekid)
- Fixed #32: Warning in String::endsWith() - (@thekid)
- Fixed #20: Generic classes and namespaces - (@thekid)
- Fixed
io.streams.Streamsinstances to return true foris_file()
(@thekid) - Fixed
BufferedInputStream::available()(see xp-framework/xp-runners#17)
(@thekid) - Fixed closures inside objects and arrays leading to xp::stringOf() raising
an exception (Serialization of 'Closure' is not allowed) - (@thekid) - Fixed xp-framework/xp-framework#347 - "Undefined variable: len" in BSDSocket
(@haimich)
Features
- Added support for
::classin annotations - #52 (@thekid) - Made io.streams.MemoryOutputStream implement io.streams.Seekable - (@thekid)
- Implemented support for expanding environment variables in property files.
See PR #42 and xp-framework/xp-framework#365 (@thekid, @johannes85) - Added support for
callabletypehint - (@thekid) - Changed util.profiling.Timer to be able to provide intermediate results
withelapsedTime()without prior call tostop(), and added fluent
interface to util.profiling.Timer's start() and stop() methods - (@thekid) - Implemented taking exceptions from tearDown() into account for test failure /
success in the unittest package, see #32 - (@thekid) - Implemented pushing back bytes to buffered stream (see #16)
(@thekid) - Added support for closures in annotations - #7 - (@thekid)
- Merged xp-framework/xp-framework#353: Add support for rolling logfile names
in FileAppender (and Logger) - (@thekid, @kiesel) - Changed Console class to print
trueandfalsefor booleans instead of
1for true and an empty string for false - (@thekid) - Implemented generic util.log.LogCategory::log($level, $args)
See #4 - (@thekid) - Added util.ConfigurationException and util.ApplicationException as requested
in xp-framework/xp-framework#346 - (@thekid) - Added support for
xpcli -?for consistency reasons - (@thekid) - Extended the
withstatement to to work with lang.Closeable instances.
See #2 - (@thekid)