Skip to content

Releases: laminas/laminas-servicemanager

3.8.0

14 Sep 03:43
3.8.0
499a6ea
Compare
Choose a tag to compare

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

Documentation,Enhancement

3.7.0

24 Jul 19:45
3.7.0
2b0aee4
Compare
Choose a tag to compare

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

Documentation

3.6.4

03 Feb 08:44
3.6.4
b1445e1
Compare
Choose a tag to compare

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

25 Jan 00:14
3.6.3
04a0118
Compare
Choose a tag to compare

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

17 Jan 17:08
3.6.2
69a3380
Compare
Choose a tag to compare

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

3.5.2

17 Jan 16:54
3.5.2
0669e1e
Compare
Choose a tag to compare

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

10 Jan 22:25
3.6.1
d55e4e7
Compare
Choose a tag to compare

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

3.6.0

10 Jan 15:50
3.6.0
0c1ec25
Compare
Choose a tag to compare

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

Fixed


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

3.5.1

01 Dec 13:43
3.5.1
Compare
Choose a tag to compare

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

11 May 14:46
3.4.1
Compare
Choose a tag to compare

Added

  • Nothing.

Changed

  • Nothing.

Deprecated

  • Nothing.

Removed

  • Nothing.

Fixed

  • #28 provides updates to the ConfigAbstractFactory to ensure it works correctly under PHP 7.4 when the config service is represented by an ArrayObject or ArrayAccess implementation.

  • #35 updates two exception messagers from the ConfigAbstractFactory to be more clear about what caused them.