sandrokeil / interop-config
提供接口和具体实现,通过工厂类根据配置创建实例,并确保有效的配置结构。它还可以用于自动发现工厂和创建配置文件。
Requires
- php: ^7.1 || ^8.0
Requires (Dev)
- bookdown/bookdown: ^1.1.0
- malukenho/docheader: ^0.1.7
- php-coveralls/php-coveralls: ^2.1
- phpbench/phpbench: ^0.15
- phpunit/phpunit: ^7.0.1 || ^9.3.8
- squizlabs/php_codesniffer: ^3.0
- webuni/commonmark-attributes-extension: ^0.5.0
- webuni/commonmark-table-extension: ^0.6.1
Suggests
- psr/container: To retrieve config in your factories
README
您想配置您的工厂吗?
您想减少您的工厂样板代码吗?
您想自动检查必需的选项或合并默认选项吗?
您想要一个有效的配置结构吗?
您想从工厂类生成配置文件吗?
这个库将帮您解决问题!
interop-config
提供接口和具体实现,通过工厂类根据配置创建实例,并确保有效的配置结构。它还可以用于自动发现工厂和创建配置文件。
- 经过充分测试。 除了单元测试和持续集成/检查之外,此解决方案也适用于生产使用。
- 无框架限制 此PHP库不依赖于任何框架,但您可以使用它与您喜欢的框架一起使用。
- 每项更改都有记录。 想要知道有什么新功能? 请查看 CHANGELOG.md
- 倾听您的想法。 有一个好主意? 带着经过测试的pull request来或者打开一个新问题。 查看 CONTRIBUTING.md
您应该有编码规范和配置规范。如果没有,您应该考虑一下。 interop-config
具有普遍适用性! 更多详情请参阅 文档。
安装
建议的安装方法是使用composer。有关composer文档,请参阅 getcomposer.org。
运行 composer require sandrokeil/interop-config
来安装 interop-config。版本 1.x
用于PHP < 7.1,版本 2.x
用于PHP >= 7.1。
文档
有关最新在线文档,请访问 http://sandrokeil.github.io/interop-config/。 参考快速入门部分以获取详细说明。
文档位于 doc树 中,可以使用 bookdown 或 Docker 编译
$ docker run -it --rm -v $(pwd):/app sandrokeil/bookdown doc/bookdown.json $ docker run -it --rm -p 8080:8080 -v $(pwd):/app php:7.1-cli php -S 0.0.0.0:8080 -t /app/doc/html
或运行 bookdown
$ ./vendor/bin/bookdown doc/bookdown.json $ php -S 0.0.0.0:8080 -t doc/html/
然后浏览到 http://localhost:8080/
项目
这是使用 interop-config
接口的项目列表(不完整)。
- prooph/service-bus - 支持CQRS的PHP轻量级消息总线
- prooph/event-store - PHP EventStore实现
- prooph/snapshot-store - 简单且轻量级的快照存储
- prooph/psr7-middleware - 用于prooph组件的PSR-7中间件
基准测试
基准测试使用PHPBench,可以通过以下命令启动:
$ ./vendor/bin/phpbench run -v --report=table
或者使用Docker
$ docker run --rm -it --volume $(pwd):/app prooph/php:7.1-cli-opcache php ./vendor/bin/phpbench run --report=table
您可以使用group
和filter
参数来获取特定组/过滤器的结果。
以下组可供选择:perf
、config
、configId
、mandatory
、mandatoryRev
和default
以下过滤器可供选择:can
、options
和fallback