mxc-commons / mxc-servicemanager
对Zend ServiceManager 3.2进行重构以提高性能。
Requires
- php: ^7.1
- container-interop/container-interop: ^1.2
- psr/container: ^1.0
- zendframework/zend-stdlib: ^3.2
Requires (Dev)
- mikey179/vfsstream: ^1.6.5
- ocramius/proxy-manager: ^2.2.0
- phpbench/phpbench: 0.15.0
- phpunit/phpunit: ^6.5.7
- zendframework/zend-coding-standard: ~1.0.0
Suggests
- ocramius/proxy-manager: ProxyManager ^2.2.0 to handle lazy initialization of services
- zendframework/zend-stdlib: zend-stdlib ^2.7.7 | ^3.1 if you wish to use the MergeReplaceKey or MergeRemoveKey features in Config instances
Provides
Replaces
README
版本
版本1.1由Frank Hein于2018-12-10创建,德国maxence operations GmbH。
本版本基于Zend Service Manager 3.x,并与它向后兼容。
简介
mxc-servicemanager是与zend-servicemanager 3.x兼容的组件。它可以用来替代zend-servicemanager 3.x版本。与zend-servicemanager不同的是,此组件不支持PHP 5.6。
为了mxc-servicemanager,我们对zend-servicemanager的几个部分进行了重构以提高性能。这包括配置和设置、工厂缓存和服务解析。
mxc-servicemanager将与zend-servicemanager保持兼容。zend-servicemanager master和develop分支的更改将根据适当和适用的情况合并到mxc-servicemanager中。
特性
- 通过configure()加快服务管理器配置
- 通过API加快服务管理器配置
- addAbstractFactory
- addDelegator
- addInitializer
- mapLazyService
- setAlias
- setFactory
- setInvokableClass
- setService
- setShared
- 加快以下服务交付
- 别名
- 委托者
- 可调用类
- 抽象工厂
- 加快服务管理器资源
- ConfigAbstractFactory
- 简化常见情况的配置
- 全面的基准测试套件
安装
要安装mxc-servicemanager
-
从您的项目中删除对zend-servicemanager的依赖。
-
将mxc-servicemanager添加到您的composer.json中作为依赖
"require": { "mxc-commons/mxc-servicemanager": "^1.1" }
-
配置PSR-4符合的命名空间Zend\ServiceManager的自动加载。如果您使用基于composer的推荐自动加载方式,请在您的composer.json中添加此配置
"autoload": { "psr-4": { "Zend\\ServiceManager\\": "src/" } },
-
运行composer update
现在您可以像以前一样使用Zend\ServiceManager。zend-servicemanager将被mxc-servicemanager透明地替换。mxc-servicemanager实例仍然通过new Zend\ServiceManager\ServiceManager
创建。
许可证
mxc-servicemanager在New BSD许可证下提供。请参阅LICENSE.md
。
讨论
关于此分支的所有相关讨论平台是 mxc-commons/mxc-servicemanager 的问题部分。
状态
请参阅 CHANGELOG.md
以获取更改和增强功能的列表。每个版本都包含一个全面的基准比较。基准测试的简要描述提供在 BENCHMARKS.md
中。
致谢
这项工作基于 zend-servicemanager,它是 Zend 框架 的一部分。如果没有 Matthew Weier O'Phinney (@weierophinney) 及众多为 Zend 框架做出贡献的人的工作,这项工作将无法完成。
单元测试使用 Sebastian Bergmann 的 PHPUnit 单元测试框架 (@sebastianbergmann) 进行。
基准测试使用 Daniel Leech 的 PHPBench 基准测试框架 (@dantleech) 进行。