Пример #1
0
class Baz
{
    protected $argument;
    public function __construct($argument)
    {
        $this->argument = $argument;
    }
    public function working()
    {
        return $this->argument->say() . 'Yep!';
    }
}
/**
 * Define dependencies
 */
$dic = new IoC();
$dic->register('greeter', function () {
    return new FooBar();
});
$dic->register('status', function () use($dic) {
    return new Baz($dic->get('greeter'));
});
/**
 * Real Usage
 */
$greeter = $dic->get('greeter');
print $greeter->say() . ' ' . $greeter->hello() . ' ' . $greeter->world() . PHP_EOL . '<br />';
// I say: Hello , World!
$status = $dic->get('status');
// I say: Yep!
print $status->working();