Skip to content

Zend ServiceManager 3.2 refactored for much better performance.

License

Notifications You must be signed in to change notification settings

mxc-commons/mxc-servicemanager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

08d2a23 · May 5, 2021
Dec 10, 2018
Sep 13, 2016
Feb 17, 2018
Dec 10, 2018
Dec 10, 2018
Jun 1, 2016
Nov 27, 2017
Feb 12, 2018
Dec 10, 2018
Mar 13, 2018
Dec 10, 2018
Feb 8, 2018
Dec 10, 2018
May 5, 2021
Dec 10, 2018
Nov 27, 2017
Jan 24, 2016
Dec 19, 2016
Sep 16, 2015

mxc-servicemanager

master: Build Status Coverage Status develop: Build Status Coverage Status

Version

Release 1.1 created on 2018-12-10 by Frank Hein, maxence operations GmbH, Germany.

This version is based on Zend Service Manager 3.x and is backwards compatible with it.

Introduction

mxc-servicemanager is a component compatible to zend-servicemanager 3.x. It can be used to substitute zend-servicemanager 3.x versions. Different from zend-servicemanager this component does not support PHP 5.6.

For mxc-servicemanager we refactored several parts of zend-servicemanager for better performance. This includes configuration and setup, factory caching and service resolution.

mxc-servicemanager will be kept compatible to zend-servicemanager. Changes to master and develop branches of zend-servicemanager will get merged into mxc-servicemanager as appropriate and applicable.

Features

  • Speed up service manager configuration via configure()
  • Speed up service manager configuration via the APIs:
    • addAbstractFactory
    • addDelegator
    • addInitializer
    • mapLazyService
    • setAlias
    • setFactory
    • setInvokableClass
    • setService
    • setShared
  • Speed up service delivery for
    • aliases
    • delegators
    • invokables
    • abstract factories
  • Speed up service manager assets
    • ConfigAbstractFactory
  • Simplified configuration for common cases
  • Comprehensive benchmark suite

Installation

To install mxc-servicemanager:

  1. Remove dependencies to zend-servicemanager from your project.

  2. Add a dependency to mxc-servicemanager to your composer.json

    "require": {
        "mxc-commons/mxc-servicemanager": "^1.1"
    }
  3. Configure PSR-4 compliant autoloading of the namespace Zend\ServiceManager. If you use the recommended way of composer based autoloading, add this configuration to your composer.json

    "autoload": {
        "psr-4": {
            "Zend\\ServiceManager\\": "src/"
        }
    },
  4. Run composer update

Now you can use Zend\ServiceManager the way you are used to use it. zend-servicemanager is transparently replaced by mxc-servicemanager. mxc-servicemanager instances get created by new Zend\ServiceManager\ServiceManager as before.

License

mxc-servicemanager is provided under the New BSD License. See LICENSE.md.

Discussion

Platform for discussion of all things related to this fork is the issues section of mxc-commons/mxc-servicemanager.

Status

Please refer to the CHANGELOG.md for a list of changes and enhancements. A comprehensive benchmark comparison is included for each version. A brief description of the benchmark tests is provided in BENCHMARKS.md.

Credits

This work is based on zend-servicemanager, which is part of the Zend Framework. This work would not have been possible without the work of Matthew Weier O'Phinney (@weierophinney) and the numerous people contributing to Zend Framework.

Unit tests are done using Sebastian Bergmann's PHPUnit unit testing framework (@sebastianbergmann).

Benchmarks are done using Daniel Leech's PHPBench benchmark framework (@dantleech).