You want to configure your factories?
You want to reduce your factory boilerplate code?
You want to check automatically for mandatory options or merge default options?
You want to have a valid config structure?
You want to generate your configuration files from factory classes?
This library comes to the rescue!
interop-config
provides interfaces and a concrete implementation to create instances depending on configuration via
factory classes and ensures a valid config structure. It can also be used to auto discover factories
and to create configuration files.
- Well tested. Besides unit test and continuous integration/inspection this solution is also ready for production use.
- Framework agnostic This PHP library does not depends on any framework but you can use it with your favourite framework.
- Every change is tracked. Want to know whats new? Take a look at CHANGELOG.md
- Listen to your ideas. Have a great idea? Bring your tested pull request or open a new issue. See CONTRIBUTING.md
You should have coding conventions and you should have config conventions. If not, you should think about that.
interop-config
is universally applicable! See further documentation for more details.
The suggested installation method is via composer. For composer documentation, please refer to getcomposer.org.
Run composer require sandrokeil/interop-config
to install interop-config. Version 1.x
is for PHP < 7.1 and Version 2.x
is for PHP >= 7.1.
For the latest online documentation visit http://sandrokeil.github.io/interop-config/. Refer the Quick Start section for a detailed explanation.
Documentation is in the doc tree, and can be compiled using bookdown or 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
or run bookdown
$ ./vendor/bin/bookdown doc/bookdown.json
$ php -S 0.0.0.0:8080 -t doc/html/
Then browse to http://localhost:8080/
This is a list of projects who are using interop-config
interfaces (incomplete).
- prooph/service-bus - PHP Lightweight Message Bus supporting CQRS
- prooph/event-store - PHP EventStore Implementation
- prooph/snapshot-store - Simple and lightweight snapshot store
- prooph/psr7-middleware - PSR-7 Middleware for prooph components
The benchmarks uses PHPBench and can be started by the following command:
$ ./vendor/bin/phpbench run -v --report=table
or with Docker
$ docker run --rm -it --volume $(pwd):/app prooph/php:7.1-cli-opcache php ./vendor/bin/phpbench run --report=table
You can use the group
and filter
argument to get only results for a specific group/filter.
These groups are available: perf
, config
, configId
, mandatory
, mandatoryRev
and default
These filters are available: can
, options
and fallback