/** * 构造函数, 可以为DI指定对象容器和对象提供者类, 若不指定则使用内置的默认容器和默认对象提供者类 * * @param \Pure\Container $container * @param \Pure\DI\Provider $provider */ public function __construct(Container $container = null, Provider $provider = null) { $this->_container = $container ?: new Container(); $this->_provider = $provider ?: new ProviderDefault(); $providerInject = new InjectFactory($this, $this->_provider); $providerInject->isAccept() and $this->_provider = $providerInject->getInstance(); $this->_provider->register(); }
public function testIsAccept() { $injectFactory = new InjectFactory($this->di, 'DI\\InjectA'); $this->assertTrue($injectFactory->isAccept()); $injectFactory = new InjectFactory($this->di, 'DI\\InjectB'); $this->assertTrue($injectFactory->isAccept()); $injectFactory = new InjectFactory($this->di, $this); $this->assertFalse($injectFactory->isAccept()); }