Callback container
, (*1)
A simple object instantiator to lazy load registered callback handlers. Part of the
code base has been extracted from Semantic MediaWiki and is now being
deployed as independent library., (*2)
Requirements
- PHP 5.5
- HHVM 3.5 or later
Installation
The recommended installation method for this library is to add
the dependency to your composer.json., (*3)
{
"require": {
"onoi/callback-container": "~2.0"
}
}
Usage
use Onoi\CallbackContainer\CallbackContainerFactory;
$callbackContainerFactory = new CallbackContainerFactory();
$containerBuilder = $callbackContainerFactory->newCallbackContainerBuilder();
$containerBuilder->registerCallbackContainer( ... );
$service = $containerBuilder->create( ... );
$service = $containerBuilder->singleton( ... );
This document contains detailed examples on how to use the CallbackContainerFactory
and ContainerBuilder
., (*4)
Contribution and support
If you want to contribute work to the project please subscribe to the
developers mailing list and have a look at the contribution guidelinee. A list
of people who have made contributions in the past can be found here., (*5)
Tests
The library provides unit tests that covers the core-functionality normally run by the
continues integration platform. Tests can also be executed manually using the
composer phpunit
command from the root directory., (*6)
Release notes
-
2.0.0 (2017-02-18), (*7)
- Requires PHP 5.5+
- Added
CallbackContainerFactory
- Added
CallbackContainerBuilder::registerAlias
- Added
CallbackContainerBuilder::registerFromFile
to allow loading callback
definitions from a file
-
1.1.0 (2016-04-30), (*8)
- Fixed issue in
registeredObject
for when a singleton override contained a null
argument
- Deprecated the
CallbackLoader
interface in favour of the CallbackInstantiator
interface
- Deprecated the
NullCallbackLoader
class in favour of the NullCallbackInstantiator
class
-
1.0.0 (2015-09-08), (*9)
- Added the
CallbackContainer
and CallbackLoader
interface
- Added the
DeferredCallbackLoader
and NullCallbackLoader
implementation
License
GNU General Public License 2.0 or later., (*10)