Interoperability Configuration
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.
Installation
Installation of this module uses composer. For composer documentation, please refer to getcomposer.org.
Put the following into your composer.json or run composer require sandrokeil/interop-config
.
{
"require": {
"sandrokeil/interop-config": "^1.0"
}
}
Documentation
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.0-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/
Projects
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/event-store-doctrine-adapter - Doctrine Adapter for ProophEventStore
- prooph/event-store-mongodb-adapter - MongoDB Adapter for ProophEventStore
- prooph/snapshotter - snapshot tool for prooph event-store
- prooph/snapshot-memcached-adapter - Snapshot Memcached Adapter for ProophEventStore
- prooph/snapshot-doctrine-adapter - Snapshot Doctrine Adapter for ProophEventStore
- prooph/laravel-package - Laravel package for prooph components
Benchmarks
The benchmarks uses PHPBench and can be started by the following command:
$ ./vendor/bin/phpbench run --report=aggregate
or with Docker
$ docker run --rm -it --volume $(pwd):/app prooph/php:7.0-cli-opcache php ./vendor/bin/phpbench run --report=aggregate