示例#1
0
 public function provide(Container $container)
 {
     return $container->make($this->class);
 }
示例#2
0
 public function provide(Container $container)
 {
     return $container->call($this->callback);
 }
示例#3
0
 public function provide(Container $container)
 {
     return $container->call(array($container->make($this->class), $this->method));
 }
示例#4
0
文件: ex1.php 项目: chemisus/slinpin
    }
    public function foo()
    {
        return "Decorated({$this->id}) " . $this->foo->foo();
    }
}
class FooBarDecorator implements Decorator
{
    private $id;
    private $count = 0;
    public function __construct($id)
    {
        $this->id = $id;
    }
    public function decorate(Container $container, $provided)
    {
        echo __METHOD__ . "({$this->id})\n";
        return new FooBarDecoration($provided, $this->id . '-' . ++$this->count);
    }
}
$container = new Container();
$container->bind(__NAMESPACE__ . '\\Foo', __NAMESPACE__ . '\\FooBar')->decorator(new FooBarDecorator(1))->decorator(new FooBarDecorator(2))->resolver(new CachedResolver())->decorator(new FooBarDecorator(3));
echo "----------------------------------------------------\n";
echo $container->provide(__NAMESPACE__ . '\\Foo')->foo() . "\n";
echo "----------------------------------------------------\n";
echo $container->provide(__NAMESPACE__ . '\\Foo')->foo() . "\n";
echo "----------------------------------------------------\n";
echo $container->provide(__NAMESPACE__ . '\\Foo')->foo() . "\n";
echo "----------------------------------------------------\n";
echo $container->provide(__NAMESPACE__ . '\\Foo')->foo() . "\n";
echo "----------------------------------------------------\n";