本文整理汇总了PHP中Windwalker\DI\Container::set方法的典型用法代码示例。如果您正苦于以下问题:PHP Container::set方法的具体用法?PHP Container::set怎么用?PHP Container::set使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Windwalker\DI\Container
的用法示例。
在下文中一共展示了Container::set方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testRegister
/**
* Method to test register().
*
* @return void
*
* @covers Windwalker\Provider\CliProvider::register
*/
public function testRegister()
{
$container = new Container();
$provider = new CliProvider();
$container->set('windwalker.config', new Registry(array('bundle' => array())));
$provider->register($container);
$this->assertInstanceOf('Windwalker\\Console\\Application\\Console', $container->get('app'));
$this->assertInstanceOf('Windwalker\\Console\\Application\\Console', $container->get('Windwalker\\Console\\Application\\Console'));
$this->assertSame($container->get('app')->getIO(), $container->get('io'));
$this->assertInstanceOf('Windwalker\\Console\\IO\\IO', $container->get('io'));
$this->assertInstanceOf('Windwalker\\Console\\IO\\IO', $container->get('input'));
$this->assertInstanceOf('Windwalker\\Console\\IO\\IO', $container->get('Windwalker\\Console\\IO\\IO'));
}
示例2: testDump
/**
* testDump
*
* @covers \Windwalker\DI\Container::dump()
*/
public function testDump()
{
// Not shared
$this->instance->set('foo', function () {
return new \ArrayObject();
}, false, false);
$this->instance->get('foo');
$dumpResult = $this->instance->dump();
$this->assertEquals(0, count($dumpResult['data']));
// Shared
$this->instance->set('bar', function () {
return new \ArrayObject();
}, true, false);
$this->instance->get('bar');
$dumpResult = $this->instance->dump();
$this->assertEquals(1, count($dumpResult['data']));
}
示例3: testcreateObject
/**
* Method to test createObject().
*
* @return void
*
* @covers Windwalker\DI\Container::createObject
*/
public function testcreateObject()
{
$container = new Container();
$foo = $container->createObject('Windwalker\\DI\\Test\\Mock\\Foo');
$this->assertInstanceOf('Windwalker\\DI\\Test\\Mock\\Foo', $foo);
$this->assertInstanceOf('Windwalker\\DI\\Test\\Mock\\Bar', $foo->bar);
$this->assertInstanceOf('SplPriorityQueue', $foo->bar->queue);
$this->assertInstanceOf('SplStack', $foo->bar->stack);
// Bind a sub class
$container = new Container();
$container->share('SplStack', new StubStack());
$foo = $container->createObject('Windwalker\\DI\\Test\\Mock\\Foo');
$this->assertInstanceOf('Windwalker\\DI\\Test\\Mock\\StubStack', $foo->bar->stack);
// Bind not shared classes
$container = new Container();
$container->set('SplPriorityQueue', function () {
return new \SplPriorityQueue();
});
$queue = $container->get('SplPriorityQueue');
$foo = $container->createObject('Windwalker\\DI\\Test\\Mock\\Foo');
$this->assertNotSame($queue, $foo->bar->queue, 'Non shared class should be not same.');
// Auto create classes should be not shared
$container = new Container();
$bar1 = $container->createObject('Windwalker\\DI\\Test\\Mock\\Bar');
$bar2 = $container->createObject('Windwalker\\DI\\Test\\Mock\\Bar2');
$this->assertNotSame($bar1->queue, $bar2->queue);
// Not shared object
$container = new Container();
$foo = $container->createObject('Windwalker\\DI\\Test\\Mock\\Foo');
$foo2 = $container->get('Windwalker\\DI\\Test\\Mock\\Foo');
$this->assertNotSame($foo, $foo2);
// Shared object
$container = new Container();
$foo = $container->createObject('Windwalker\\DI\\Test\\Mock\\Foo', true);
$foo2 = $container->get('Windwalker\\DI\\Test\\Mock\\Foo');
$this->assertSame($foo, $foo2);
}