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