Castel is a fast Dependency Injection Container. The class for PHP 5.3 consists of just one file.
Pick up the src/Castel.php
file or install it with Composer :
{
"require": {
"regeda/castel": "0.1.*"
}
}
Creating a container is a matter of instating the Castel class
$container = new Castel();
$container->share('foo', 'bar');
$container->share('something', new Something());
Retrieving parameters as plain properties:
$container->foo; // bar
$container->something; // instance of Something class
Services are defined by anonymous functions that return an instance of an object
$container->share('session', function () {
return new Session();
});
Using the defined services
$session = $container->session; // instance of Session class
$container->share('mail', function () {
return new \Zend_Mail();
});
$container->extend('mail', function ($mail, $container) {
$mail->setFrom($container->getValue('mail.default_from'));
return $mail;
});
Source: https://github.com/regeda/castel