Releases: laminas/laminas-servicemanager
3.8.0
3.8.0 - 2021-09-14
Release Notes for 3.8.0
Feature release (minor)
3.8.0
- Total issues resolved: 0
- Total pull requests resolved: 3
- Total contributors: 3
Enhancement
- 103: Provide PHP 8.1 support thanks to @weierophinney
- 100: Remove check for
php:<7
, since support was dropped thanks to @internalsystemerror
Documentation,Enhancement
3.7.0
Release Notes for 3.7.0
Feature release (minor)
Major performance improvements
This release brings in major performance improvements for the Laminas\ServiceManager\ServiceManager#has()
API, which is both used internally and externally, and at the core of many laminas/*
components.
The rough improvements range between 30% and 80% depending on the state of initialization of your ServiceManager
instance.
You can see the full benchmark results against `3.6.4` here
Here's a report run by @Ocramius, after enabling `OpCache`, disabling `Xdebug`, and disabling turbo-boost on hi system (`Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz`):❯ ./vendor/bin/phpbench run --ref=before_93
PHPBench (1.0.4) running benchmarks...
with configuration file: /home/ocramius/Documents/laminas/laminas-servicemanager/phpbench.json
with PHP version 8.0.8, xdebug ❌, opcache ✔
comparing [actual vs. before_93]
\LaminasBench\ServiceManager\HasNewServicesBench
benchHasFactory1........................R1 I7 - [Mo0.203μs vs. Mo0.925μs] -78.09% (±2.08%)
benchHasInvokable1......................R9 I9 - [Mo0.277μs vs. Mo1.068μs] -74.10% (±2.14%)
benchHasService1........................R1 I6 - [Mo0.184μs vs. Mo0.894μs] -79.37% (±1.18%)
benchFetchFactoryAlias1.................R1 I9 - [Mo0.274μs vs. Mo1.062μs] -74.18% (±0.57%)
benchHasRecursiveFactoryAlias1..........R1 I5 - [Mo0.275μs vs. Mo1.067μs] -74.25% (±1.51%)
benchFetchRecursiveFactoryAlias2........R1 I9 - [Mo0.274μs vs. Mo1.061μs] -74.22% (±1.51%)
benchFetchAbstractFactoryFoo............R1 I9 - [Mo0.315μs vs. Mo1.212μs] -74.01% (±1.71%)
benchNonExistingService.................R1 I5 - [Mo0.346μs vs. Mo1.278μs] -72.90% (±1.72%)
\LaminasBench\ServiceManager\FetchNewServiceViaConfigAbstractFactoryBench
benchFetchServiceWithNoDependencies.....R7 I9 - [Mo1.189μs vs. Mo2.801μs] -57.56% (±2.39%)
benchBuildServiceWithNoDependencies.....R4 I9 - [Mo1.107μs vs. Mo2.692μs] -58.87% (±1.89%)
benchFetchServiceDependingOnConfig......R1 I4 - [Mo1.466μs vs. Mo3.213μs] -54.37% (±2.68%)
benchBuildServiceDependingOnConfig......R4 I6 - [Mo1.360μs vs. Mo3.036μs] -55.19% (±2.23%)
benchFetchServiceWithDependency.........R1 I0 - [Mo1.452μs vs. Mo3.113μs] -53.34% (±1.57%)
benchBuildServiceWithDependency.........R1 I8 - [Mo1.346μs vs. Mo2.968μs] -54.66% (±1.80%)
\LaminasBench\ServiceManager\FetchNewServicesBench
benchFetchFactory1......................R1 I3 - [Mo0.863μs vs. Mo0.879μs] -1.85% (±1.73%)
benchBuildFactory1......................R1 I6 - [Mo0.712μs vs. Mo0.736μs] -3.23% (±1.90%)
benchFetchInvokable1....................R1 I9 - [Mo0.978μs vs. Mo0.997μs] -1.93% (±2.49%)
benchBuildInvokable1....................R4 I7 - [Mo0.795μs vs. Mo0.795μs] -0.06% (±2.05%)
benchFetchService1......................R1 I6 - [Mo0.179μs vs. Mo0.180μs] -0.43% (±2.13%)
benchFetchFactoryAlias1.................R1 I0 - [Mo0.710μs vs. Mo0.709μs] +0.24% (±2.09%)
benchBuildFactoryAlias1.................R1 I9 - [Mo0.712μs vs. Mo0.766μs] -7.03% (±2.45%)
benchFetchRecursiveFactoryAlias1........R1 I0 - [Mo0.708μs vs. Mo0.714μs] -0.78% (±1.29%)
benchBuildRecursiveFactoryAlias1........R1 I7 - [Mo0.731μs vs. Mo0.742μs] -1.57% (±2.40%)
benchFetchRecursiveFactoryAlias2........R1 I0 - [Mo0.706μs vs. Mo0.781μs] -9.61% (±2.09%)
benchBuildRecursiveFactoryAlias2........R1 I1 - [Mo0.710μs vs. Mo0.771μs] -7.85% (±3.13%)
benchFetchAbstractFactoryFoo............R2 I9 - [Mo0.705μs vs. Mo0.683μs] +3.24% (±2.30%)
benchBuildAbstractFactoryFoo............R2 I7 - [Mo0.544μs vs. Mo0.527μs] +3.27% (±1.24%)
\LaminasBench\ServiceManager\FetchNewServiceUsingReflectionAbstractFactoryAsFactoryBench
benchFetchServiceWithNoDependencies.....R2 I9 - [Mo1.071μs vs. Mo1.072μs] -0.06% (±1.20%)
benchBuildServiceWithNoDependencies.....R1 I7 - [Mo0.964μs vs. Mo0.971μs] -0.73% (±1.48%)
benchFetchServiceDependingOnConfig......R1 I5 - [Mo2.134μs vs. Mo3.003μs] -28.95% (±1.17%)
benchBuildServiceDependingOnConfig......R1 I2 - [Mo2.038μs vs. Mo3.003μs] -32.13% (±1.41%)
benchFetchServiceWithDependency.........R2 I1 - [Mo2.368μs vs. Mo4.076μs] -41.90% (±1.22%)
benchBuildServiceWithDependency.........R1 I5 - [Mo2.259μs vs. Mo4.098μs] -44.89% (±2.24%)
\LaminasBench\ServiceManager\FetchCachedServicesBench
benchFetchFactory1......................R1 I12 - [Mo0.186μs vs. Mo0.189μs] -1.68% (±2.11%)
benchFetchInvokable1....................R2 I16 - [Mo0.370μs vs. Mo0.367μs] +0.83% (±0.75%)
benchFetchService1......................R4 I19 - [Mo0.185μs vs. Mo0.178μs] +3.73% (±1.94%)
benchFetchAlias1........................R3 I16 - [Mo0.180μs vs. Mo0.189μs] -4.48% (±2.17%)
benchFetchRecursiveAlias1...............R2 I6 - [Mo0.179μs vs. Mo0.180μs] -0.05% (±1.56%)
benchFetchRecursiveAlias2...............R1 I5 - [Mo0.181μs vs. Mo0.179μs] +1.22% (±2.28%)
benchFetchAbstractFactoryService........R2 I9 - [Mo0.723μs vs. Mo0.726μs] -0.35% (±2.19%)
\LaminasBench\ServiceManager\FetchNewServiceViaReflectionAbstractFactoryBench
benchFetchServiceWithNoDependencies.....R1 I7 - [Mo1.102μs vs. Mo1.100μs] +0.19% (±2.36%)
benchBuildServiceWithNoDependencies.....R2 I3 - [Mo1.020μs vs. Mo1.012μs] +0.75% (±2.30%)
benchFetchServiceDependingOnConfig......R1 I7 - [Mo2.269μs vs. Mo3.174μs] -28.52% (±1.39%)
benchBuildServiceDependingOnConfig......R1 I9 - [Mo2.194μs vs. Mo3.080μs] -28.75% (±1.75%)
benchFetchServiceWithDependency.........R1 I4 - [Mo2.496μs vs. Mo4.319μs] -42.22% (±1.62%)
benchBuildServiceWithDependency.........R1 I2 - [Mo2.391μs vs. Mo4.216μs] -43.30% (±1.79%)
\LaminasBench\ServiceManager\SetNewServicesBench
benchSetService.........................R2 I4 - [Mo0.257μs vs. Mo0.267μs] -3.54% (±1.41%)
benchSetFactory.........................R1 I1 - [Mo0.812μs vs. Mo0.875μs] -7.18% (±1.98%)
benchSetAlias...........................R1 I1 - [Mo1.351μs vs. Mo1.361μs] -0.73% (±1.14%)
benchSetAliasOverrided..................R1 I2 - [Mo1.338μs vs. Mo1.355μs] -1.28% (±1.20%)
\LaminasBench\ServiceManager\HasCachedServicesBench
benchHasFactory1........................R1 I15 - [Mo0.187μs vs. Mo0.900μs] -79.24% (±1.94%)
benchHasInvokable1......................R1 I11 - [Mo0.259μs vs. Mo1.045μs] -75.19% (±1.45%)
benchHasService1........................R5 I19 - [Mo0.189μs vs. Mo0.898μs] -78.94% (±1.50%)
benchHasAlias1..........................R4 I16 - [Mo0.189μs vs. Mo0.899μs] -78.95% (±1.67%)
benchHasRecursiveAlias1.................R1 I8 - [Mo0.186μs vs. Mo0.894μs] -79.18% (±1.48%)
benchHasRecursiveAlias2.................R1 I14 - [Mo0.185μs vs. Mo0.895μs] -79.35% (±1.13%)
benchHasAbstractFactoryService..........R1 I11 - [Mo0.317μs vs. Mo1.182μs] -73.22% (±1.32%)
benchNonExistingService.................R1 I4 - [Mo0.352μs vs. Mo1.284μs] -72.61% (±1.37%)
\LaminasBench\ServiceManager\FetchNewServiceUsingConfigAbstractFactoryAsFactoryBench
benchFetchServiceWithNoDependencies.....R1 I3 - [Mo1.262μs vs. Mo2.135μs] -40.89% (±1.46%)
benchBuildServiceWithNoDependencies.....R1 I0 - [Mo1.171μs vs. Mo1.953μs] -40.06% (±1.48%)
benchFetchServiceDependingOnConfig......R1 I0 - [Mo1.504μs vs. Mo2.434μs] -38.20% (±1.87%)
benchBuildServiceDependingOnConfig......R2 I8 - [Mo1.442μs vs. Mo2.279μs] -36.74% (±1.22%)
benchFetchServiceWithDependency.........R7 I7 - [Mo1.553μs vs. Mo2.429μs] -36.08% (±1.86%)
benchBuildServiceWithDependency.........R1 I1 - [Mo1.453μs vs. Mo2.347μs] -38.09% (±1.97%)
\LaminasBench\ServiceManager\FetchNewServiceManagerBench
benchFetchServiceManagerCreation........R1 I7 - [Mo329.573μs vs. Mo364.622μs] -9.61% (±1.22%)
Subjects: 65, Assertions: 0, Failures: 0, Errors: 0
3.7.0
- Total issues resolved: 1
- Total pull requests resolved: 6
- Total contributors: 5
Enhancement
- 95: Upgraded to
phpbench/phpbench:1.0.4
thanks to @Ocramius - 94: Added benchmarks for
ServiceManager#has()
thanks to @boesing - 93: Improve
ServiceManager#has()
performance thanks to @koenkivits - 87: feature: add codestandard 2.0 thanks to @boesing
- 86: Remove file headers thanks to @ghostwriter
Documentation
3.6.4
3.6.4 - 2021-02-03
Release Notes for 3.6.4
3.6.x bugfix release (patch)
3.6.4
- Total issues resolved: 1
- Total pull requests resolved: 1
- Total contributors: 1
Bug
3.6.3
3.6.3 - 2021-01-25
Release Notes for 3.6.3
3.6.x bugfix release (patch)
3.6.3
- Total issues resolved: 0
- Total pull requests resolved: 1
- Total contributors: 1
Bug
3.6.2
3.6.2 - 2021-01-17
Release Notes for 3.6.2
3.6.x bugfix release (patch)
3.6.2
- Total issues resolved: 0
- Total pull requests resolved: 2
- Total contributors: 2
Bug
- 76: Merge release 3.5.2 into 3.6.x thanks to @github-actions[bot]
- 74: Fix invokables merging precedence in
3.6.x
thanks to @driehle
3.5.2
3.5.2 - 2021-01-17
Release Notes for 3.5.2
3.5.x bugfix release (patch)
3.5.2
- Total issues resolved: 0
- Total pull requests resolved: 1
- Total contributors: 1
Bug
3.6.1
3.6.1 - 2021-01-10
Release Notes for 3.6.1
3.6.x bugfix release (patch)
3.6.1
- Total issues resolved: 1
- Total pull requests resolved: 1
- Total contributors: 2
BC Break,Bug
- 71: Regression fix regarding initializers thanks to @boesing and @Grundik
3.6.0
3.6.0 - 2021-01-10
Added
-
#51 Adds PHP 8.0 support
-
#64 Backports changes from upcoming 4.0 release and re-adds PHP 7.3 support.
Changed
-
#40 modifies the behavior of the
FactoryCreator
to alphabetize import statements. -
zendframework/zend-servicemanager#221 provides enormous performance improvements for each of the various mutator methods (
setAlias()
,setFactory()
, etc.),has()
lookups, and initial container configuration.
Removed
-
#50 Removes PHP support prior 7.4.0
-
zendframework/zend-servicemanager#197 drops
support for PHP versions prior to 7.1. -
zendframework/zend-servicemanager#193 drops
support for HHVM.
Fixed
- zendframework/zend-servicemanager#230 fixes a
problem in detecting cyclic aliases, ensuring they are detected correctly.
Release Notes for 3.6.0
Feature release (minor)
3.6.0
- Total issues resolved: 0
- Total pull requests resolved: 2
- Total contributors: 1
Enhancement
- 64: Backport 4.x thanks to @boesing
- 63: Backport of 4afad5b660b8544bcf279aea09730d4f07f4fac0 thanks to @boesing
3.5.1
Release Notes for 3.5.1
This is a full revert of release 3.5.0
.
3.5.0
contained multiple backwards-incompatible (BC) breakages that were not
supposed to be released in a minor version, and therefore had to be reverted.
Due to unfortunate branch naming issues when migrating from the old develop
branch, develop
was renamed 3.5.x
, but contained multiple BC breaks that
were fundamentally incompatible with the 3.0.0
and newer features.
Due to the quick response time, in order to not break further downstream systems
that yet have to receive the update, the 3.5.0
release was deleted, so that
it does not appear in your system if you accidentally run composer update
.
Thanks to @fabiang for promptly detecting the issue and reporting it
at #59
3.5.1
- Total issues resolved: 1
- Total pull requests resolved: 0
- Total contributors: 1
BC Break,Bug
laminas-servicemanager 3.4.1
Added
- Nothing.
Changed
- Nothing.
Deprecated
- Nothing.
Removed
- Nothing.