All notable changes to this project will be documented in this file, in reverse chronological order by release.
- #96 Added PHP 7.3 support
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
-
#92 fixes serialization of
SplPriorityQueue
by ensuring its$serial
property is also serialized. -
#91 fixes behavior in the
ArrayObject
implementation that was not compatible with PHP 7.3.
- #87 adds support for PHP 7.2.
- Nothing.
- Nothing.
- #87 removes support for HHVM.
- Nothing.
- Nothing.
- #67 changes the typehint of the
$content
property of theMessage
class to indicate it is a string. All known implementations already assumed this.
- Nothing.
- Nothing.
-
#60 fixes an issue whereby calling
remove()
would incorrectly re-calculate the maximum priority stored in the queue. -
#60 fixes an infinite loop condition that can occur when inserting an item at 0 priority.
- #63 adds a new
Zend\Stdlib\ConsoleHelper
class, providing minimal support for writing output toSTDOUT
andSTDERR
, with optional colorization, when the console supports that feature.
- #38 deprecates
Zend\Stdlib\JsonSerializable
, as all supported version of PHP now support it.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- #59 fixes a notice
when defining the
Zend\Json\Json::GLOB_BRACE
constant on systems using non-gcc glob implementations.
- #51 adds PHP 7 as a supported PHP version.
- #51 adds a migration document from v2 to v3. Hint: if you use hydrators, you need to be using zend-hydrator instead!
- #51 adds automated documentation builds to gh-pages.
- Nothing.
- #33 - removed
deprecated classes
- All Hydrator classes see #22.
Zend\Stdlib\CallbackHandler
see #35
- #37 - removed
deprecated classes and polyfills:
Zend\Stdlib\DateTime
; this had been deprecated since 2.5, and only existed as a polyfill for thecreateFromISO8601()
support, now standard in all PHP versions we support.Zend\Stdlib\Exception\InvalidCallbackException
, which was unused since #33.Zend\Stdlib\Guard\GuardUtils
, which duplicatedZend\Stdlib\Guard\AllGuardsTrait
to allow usage with pre-PHP 5.4 versions.src/compatibility/autoload.php
, which has been dprecated since 2.5.
- #37 - removed
unneeded dependencies:
- zend-config (used only in testing ArrayUtils, and the test was redundant)
- zend-serializer (no longer used)
- #51 removes the documentation for hydrators, as those are part of the zend-hydrator component.
- Nothing.
- Nothing.
- #35 deprecates
Zend\Stdlib\CallbackHandler
, as the one component that used it, zend-eventmanager, will no longer depend on it starting in v3.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- #27 fixes a race
condition in the
FastPriorityQueue::remove()
logic that occurs when removing items iteratively from the same priority of a queue.
- Nothing.
- Nothing.
- Nothing.
- #26 fixes a subtle
inheritance issue with deprecation in the hydrators, and updates the
HydratorInterface
to also extend the zend-hydratorHydratorInterface
to ensure LSP is preserved.
- Nothing.
- Nothing.
- Nothing.
- #24 fixes an import in
FastPriorityQueue
to aliasSplPriorityQueue
in order to disambiguate with the local override present in the component.
-
#19 adds a new
FastPriorityQueue
implementation. It follows the same signature asSplPriorityQueue
, but uses a performance-optimized algorithm:- inserts are 2x faster than
SplPriorityQueue
and 3x faster than theZend\Stdlib\PriorityQueue
implementation. - extracts are 4x faster than
SplPriorityQueue
and 4-5x faster than theZend\Stdlib\PriorityQueue
implementation.
The intention is to use this as a drop-in replacement in the
zend-eventmanager
component to provide performance benefits. - inserts are 2x faster than
-
#20 deprecates all hydrator classes, in favor of the new zend-hydrator component. All classes were updated to extend their zend-hydrator equivalents, and marked as
@deprecated
, indicating the equivalent class from the other repository.Users should immediately start changing their code to use the zend-hydrator equivalents; in most cases, this can be as easy as removing the
Stdlib
namespace from import statements or hydrator configuration. Hydrators will be removed entirely from zend-stdlib in v3.0, and all future updates to hydrators will occur in the zend-hydrator library.Changes with backwards compatibility implications:
-
Users implementing
Zend\Stdlib\Hydrator\HydratorAwareInterface
will need to update theirsetHydrator()
implementation to typehint onZend\Hydrator\HydratorInterface
. This can be done by changing the import statement for that interface as follows:// Replace this: use Zend\Stdlib\Hydrator\HydratorInterface; // with this: use Zend\Hydrator\HydratorInterface;
If you are not using imports, change the typehint within the signature itself:
// Replace this: public function setHydrator(\Zend\Stdlib\Hydrator\HydratorInterface $hydrator) // with this: public function setHydrator(\Zend\Hydrator\HydratorInterface $hydrator)
If you are using
Zend\Stdlib\Hydrator\HydratorAwareTrait
, no changes are necessary, unless you override that method. -
If you were catching hydrator-generated exceptions, these were previously in the
Zend\Stdlib\Exception
namespace. You will need to update your code to catch exceptions in theZend\Hydrator\Exception
namespace. -
Users who do migrate to zend-hydrator may end up in a situation where their code will not work with existing libraries that are still type-hinting on the zend-stdlib interfaces. We will be attempting to address that ASAP, but the deprecation within zend-stdlib is necessary as a first step.
In the meantime, you can write hydrators targeting zend-stdlib still in order to guarantee compatibility.
-
- Nothing.
- Nothing.
- #13 adds
Zend\Stdlib\Hydrator\Iterator
, which provides mechanisms for hydrating objects when iterating a traversable. This allows creating generic collection resultsets; the original idea was pulled from PhlyMongo, where it was used to hydrate collections retrieved from MongoDB.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- #9 fixes an issue with count incrementation during insert in PriorityList, ensuring that incrementation only occurs when the item inserted was not previously present in the list.
- Nothing.
- Nothing.
- Nothing.
- #9 fixes an issue with count incrementation during insert in PriorityList, ensuring that incrementation only occurs when the item inserted was not previously present in the list.