作者:rickogde
项目:zf
public function testConfigurationCanConfigureBuilderDefinitionFromIni()
{
$this->markTestIncomplete('Builder not updated to new DI yet');
$ini = new \Zend\Config\Ini(__DIR__ . '/_files/sample.ini', 'section-b');
$config = new Configuration($ini->di);
$di = new Di($config);
$definition = $di->getDefinition();
$this->assertTrue($definition->hasClass('My\DbAdapter'));
$this->assertEquals('__construct', $definition->getInstantiator('My\DbAdapter'));
$this->assertEquals(
array('username' => null, 'password' => null),
$definition->getInjectionMethodParameters('My\DbAdapter', '__construct')
);
$this->assertTrue($definition->hasClass('My\Mapper'));
$this->assertEquals('__construct', $definition->getInstantiator('My\Mapper'));
$this->assertEquals(
array('dbAdapter' => 'My\DbAdapter'),
$definition->getInjectionMethodParameters('My\Mapper', '__construct')
);
$this->assertTrue($definition->hasClass('My\Repository'));
$this->assertEquals('__construct', $definition->getInstantiator('My\Repository'));
$this->assertEquals(
array('mapper' => 'My\Mapper'),
$definition->getInjectionMethodParameters('My\Repository', '__construct')
);
}
作者:tilliku
项目:tillikum-core-modul
public function setUp()
{
$this->mock = $this->getMock('Tillikum\\Billing\\Event\\Strategy\\StrategyInterface');
$di = new Di\Di();
$im = $di->instanceManager();
$im->addSharedInstance($this->mock, 'TestStrategyAlias');
$this->processor = new BookingProcessor($di);
$rule = new FacilityBookingRule();
$config = new FacilityBookingRuleConfig();
$config->amount = 10.0;
$config->currency = 'USD';
$config->start = new DateTime('2010-07-01');
$config->end = new DateTime('2010-07-15');
$config->strategy = 'TestStrategyAlias';
$rule->configs->add($config);
$config = new FacilityBookingRuleConfig();
$config->amount = 20.0;
$config->currency = 'USD';
$config->start = new DateTime('2010-07-15');
$config->end = new DateTime('2010-07-31');
$config->strategy = 'TestStrategyAlias';
$rule->configs->add($config);
$this->event = new FacilityBookingEvent();
$this->event->start = new DateTime('2010-07-01');
$this->event->end = new DateTime('2010-07-15');
$this->event->rule = $rule;
}
作者:magiu
项目:magiu
public function configureDi(Di $di)
{
$di->instanceManager()->addSharedInstance($this->configurationReader, get_class($this->configurationReader));
$di->instanceManager()->addSharedInstance($this->classConfigurationReader, get_class($this->classConfigurationReader));
$di->instanceManager()->addSharedInstance($this->environmentConfigurationReader, get_class($this->environmentConfigurationReader));
$di->instanceManager()->addSharedInstance($this, get_class($this));
}
作者:royop
项目:OcraDiCompile
/**
* @param array $config
* @return Di
*/
protected function createDi($config)
{
$di = new Di();
if (isset($config['di'])) {
$di->configure(new DiConfig($config['di']));
}
return $di;
}
作者:lstasza
项目:zf2mai
public function createService(ServiceLocatorInterface $oServiceLocator)
{
$oServiceLocator = $oServiceLocator->getServiceLocator();
$oAppService = $oServiceLocator->get('AppService');
$oDi = new Di();
$oDi->instanceManager()->setParameters('API\\Controller\\IndexController', array('app' => $oAppService));
return $oDi->get('API\\Controller\\IndexController');
}
作者:nedviso
项目:phpor
public function indexAction()
{
$config = $this->getServiceLocator('Configuration')->get('Configuration');
$di = new Di(null, null, new Config($config['Di']));
$basemodel = $di->get('NedVisol\\Orm\\BaseModel');
$ret = $basemodel->adapter->putRow('test', array('id' => 'row2', 'columns' => array('cf1.a' => '234', 'cf1.b' => '456'), 'checks' => array('cf1.a' => '999')));
echo "****{$ret}***";
return new ViewModel();
}
作者:tilliku
项目:tillikum-core-modul
/**
* Set up dependency injection framework
*
* @return ServiceManager
*/
public function init()
{
$options = $this->getOptions();
$doctrineContainer = $this->getBootstrap()->bootstrap('Doctrine')->getResource('Doctrine');
$di = new ZendDi\Di(null, null, new ZendDi\Config($options));
$di->instanceManager()->addSharedInstance(new Db\Adapter\Driver\Pdo\Pdo($doctrineContainer->getEntityManager()->getConnection()->getWrappedConnection()), 'Zend\\Db\\Adapter\\Driver\\Pdo\\Pdo');
$di->instanceManager()->addSharedInstance($doctrineContainer->getEntityManager(), 'Doctrine\\ORM\\EntityManager');
return $di;
}
作者:ahyswan
项目:eva-engin
public function __invoke(array $config = array())
{
$di = new Di();
$diConfig = array('definition' => array('class' => array('Zend\\Cache\\Storage\\Adapter' => array('instantiator' => array('Eva\\Cache\\StorageFactory', 'factory')), 'Eva\\Cache\\StorageFactory' => array('methods' => array('factory' => array('cfg' => array('required' => true, 'type' => false)))))), 'instance' => array('Eva\\Cache\\StorageFactory' => array('parameters' => array('cfg' => array('adapter' => array('name' => 'filesystem', 'options' => array('cacheDir' => EVA_ROOT_PATH . '/data/cache/model/')), 'plugins' => array('serializer'))))));
$globalConfig = $this->serviceLocator->get('Configuration');
$globalConfig = isset($globalConfig['cache']['model']) ? $globalConfig['cache']['model'] : array();
$diConfig = Config::mergeArray($diConfig, $globalConfig, $config);
$di->configure(new DiConfig($diConfig));
return $di->get('Eva\\Cache\\StorageFactory');
}
作者:pnaq5
项目:zf2dem
public function testWillDiscoverInjectedMethodParameters()
{
$di = new Di();
$a = new A();
$di->instanceManager()->setParameters('ZendTest\\Di\\TestAsset\\SetterInjection\\B', array('a' => $a));
$proxy = new DependencyInjectorProxy($di);
$b = $proxy->get('ZendTest\\Di\\TestAsset\\SetterInjection\\B');
$methods = $b->getMethods();
$this->assertSame('setA', $methods[0]['method']);
$this->assertSame($a, $methods[0]['params'][0]);
}
作者:VaD1k
项目:redmine_telegram_notifie
/**
* Run
*
* @return mixed
*/
public function run()
{
$dic = new Model\DiC($this->_di);
$dic->assemble();
/** @var \App\Bot\Updater $updater */
$botUpdater = $this->_di->get('BotUpdater');
$botUpdater->checkUpdates();
/** @var \App\Redmine\Updater $redmineUpdater */
$redmineUpdater = $this->_di->get('RedmineUpdater');
$redmineUpdater->checkUpdates();
}
作者:robertodormepoc
项目:zf
/**
* Create and return abstract factory seeded by dependency injector
*
* Creates and returns an abstract factory seeded by the dependency
* injector. If the "di" key of the configuration service is set, that
* sub-array is passed to a DiConfiguration object and used to configure
* the DI instance. The DI instance is then used to seed the
* DiAbstractServiceFactory, which is then registered with the service
* manager.
*
* @param ServiceLocatorInterface $serviceLocator
* @return Di
*/
public function createService(ServiceLocatorInterface $serviceLocator)
{
$di = new Di();
$config = $serviceLocator->get('Configuration');
if (isset($config['di'])) {
$di->configure(new DiConfiguration($config['di']));
}
if ($serviceLocator instanceof ServiceManager) {
// register as abstract factory as well:
$serviceLocator->addAbstractFactory(new DiAbstractServiceFactory($di, DiAbstractServiceFactory::USE_SL_BEFORE_DI));
}
return $di;
}
作者:canaydoga
项目:ukal
/**
* @param Di $locator
* @return mixed
*/
public function doProxy(Di $locator)
{
$options = $this->getOptions();
$result = null;
if ('get' === $options['method']) {
$result = $locator->get($options['name'], $options['params']);
} elseif ('newInstance' === $options['method']) {
$result = $locator->newInstance($options['name'], $options['params'], $options['isShared']);
} else {
throw new InvalidArgumentException("'{$options['method']}' is undefined method'");
}
return $result;
}
作者:navassouz
项目:zf
public function testConfigurationCanConfigureCompiledDefinition()
{
$config = ConfigFactory::fromFile(__DIR__ . '/_files/sample.php', true);
$config = new Configuration($config->di);
$di = new Di();
$di->configure($config);
$definition = $di->definitions()->getDefinitionByType('Zend\\Di\\Definition\\ArrayDefinition');
$this->assertInstanceOf('Zend\\Di\\Definition\\ArrayDefinition', $definition);
$this->assertTrue($di->definitions()->hasClass('My\\DbAdapter'));
$this->assertTrue($di->definitions()->hasClass('My\\EntityA'));
$this->assertTrue($di->definitions()->hasClass('My\\Mapper'));
$this->assertTrue($di->definitions()->hasClass('My\\RepositoryA'));
$this->assertTrue($di->definitions()->hasClass('My\\RepositoryB'));
$this->assertFalse($di->definitions()->hasClass('My\\Foo'));
}
作者:rickogde
项目:zf
public function render(Di $di)
{
echo 'Definitions: ' . PHP_EOL;
foreach ($di->definitions() as $definition) {
foreach ($definition->getClasses() as $class) {
echo PHP_EOL . ' Parameters For Class: ' . $class . PHP_EOL;
foreach ($definition->getMethods($class) as $methodName => $methodIsRequired) {
foreach ($definition->getMethodParameters($class, $methodName) as $fqName => $pData) {
echo ' ' . $pData[0] . ' [type: ';
echo ($pData[1]) ? $pData[1] : 'scalar';
echo ($pData[2] === true && $methodIsRequired) ? ', required' : ', not required';
echo ', injection-method: ' . $methodName;
echo ' fq-name: ' . $fqName;
echo ']' . PHP_EOL;
}
}
}
}
echo PHP_EOL . 'Instance Configuration Info:' . PHP_EOL;
echo PHP_EOL . ' Aliases:' . PHP_EOL;
$configuredTypes = array();
foreach ($di->instanceManager()->getAliases() as $alias => $class) {
echo ' ' . $alias . ' [type: ' . $class . ']' . PHP_EOL;
$configuredTypes[] = $alias;
}
echo PHP_EOL . ' Classes:' . PHP_EOL;
foreach ($di->instanceManager()->getClasses() as $class) {
echo ' ' . $class . PHP_EOL;
$configuredTypes[] = $class;
}
echo PHP_EOL . ' Configurations:' . PHP_EOL;
foreach ($configuredTypes as $type) {
$info = $di->instanceManager()->getConfiguration($type);
echo ' ' . $type . PHP_EOL;
foreach ($info['parameters'] as $param => $value) {
echo ' ' . $param . ' = ' . $value . PHP_EOL;
}
}
}
作者:tomcb
项目:cbp-transcription-des
protected function __construct(Di $oDi)
{
$this->oJobQueueDb = $oDi->get('Classes\\Db\\JobQueue');
$this->oBoxDb = $oDi->get('Classes\\Db\\Box');
$this->oFolioDb = $oDi->get('Classes\\Db\\Folio');
$this->oItemDb = $oDi->get('Classes\\Db\\Item');
$this->oErrorLogDb = $oDi->get('Classes\\Db\\ErrorLog');
$this->oFile = $oDi->get('Classes\\Helpers\\File');
$this->oLogger = $oDi->get('Classes\\Helpers\\Logger');
}
作者:ahyswan
项目:eva-engin
public static function factory(array $config = array())
{
$defaultConfig = array('di' => array('definition' => array(), 'instance' => array('Eva\\File\\Transfer\\Adapter\\Http' => array('parameters' => array()), 'Eva\\File\\Transfer\\Transfer' => array('parameters' => array('adapter' => 'Eva\\File\\Transfer\\Adapter\\Http')))));
$globalConfig = Api::_()->getConfig();
if (isset($globalConfig['file_transfer'])) {
$config = array_merge($defaultConfig, $globalConfig['file_transfer'], $config);
} else {
$config = array_merge($defaultConfig, $config);
}
$diConfig = array();
if ($config['di']) {
$diConfig = $config['di'];
}
$di = new Di();
$di->configure(new DiConfig($diConfig));
$fileTransfer = $di->get('Eva\\File\\Transfer\\Transfer');
//p($fileTransfer, 1);
//@\Zend\Di\Display\Console::export($di);
return $fileTransfer;
}
作者:navassouz
项目:zf
/**
* Override, as we want it to use the functionality defined in the proxy
*
* @param string $name
* @param array $params
* @return object
* @throws Exception\InvalidServiceNameException
*/
public function get($name, array $params = array())
{
// allow this di service to get dependencies from the service locator BEFORE trying di
if ($this->useServiceLocator == self::USE_SL_BEFORE_DI && $this->serviceLocator->has($name)) {
return $this->serviceLocator->get($name);
}
try {
$service = parent::get($name, $params);
return $service;
} catch (DiClassNotFoundException $e) {
// allow this di service to get dependencies from the service locator AFTER trying di
if ($this->useServiceLocator == self::USE_SL_AFTER_DI && $this->serviceLocator->has($name)) {
return $this->serviceLocator->get($name);
} else {
throw new Exception\ServiceNotFoundException(sprintf('Service %s was not found in this DI instance', $name), null, $e);
}
}
}
作者:bradley-hol
项目:zf
/**
* @group nullargs
*/
public function testNullArgumentsResultInEmptyMethodParameterList()
{
$this->markTestIncomplete('Null arguments are currently unsupported');
$opt = new Builder\PhpClass();
$opt->setName('ZendTest\\Di\\TestAsset\\OptionalArg');
$optCtor = new Builder\InjectionMethod();
$optCtor->setName('__construct')->addParameter('param', null);
$optInject = new Builder\InjectionMethod();
$optInject->setName('inject')->addParameter('param1', null)->addParameter('param2', null);
$opt->addInjectionMethod($optCtor)->addInjectionMethod($optInject);
$def = new Definition();
$def->addClass($opt);
$this->di->setDefinition($def);
$cfg = new Configuration(array('instance' => array('alias' => array('optional' => 'ZendTest\\Di\\TestAsset\\OptionalArg')), 'properties' => array('ZendTest\\Di\\TestAsset\\OptionalArg' => array('param' => null, 'param1' => null, 'param2' => null))));
$cfg->configure($this->di);
$builder = new ContainerGenerator($this->di);
$builder->setContainerClass('Container');
$codeGen = $builder->getCodeGenerator();
$classBody = $codeGen->generate();
$this->assertNotContains('NULL)', $classBody, $classBody);
}
作者:rajanlami
项目:IntTes
/**
* @group SharedInstance
*/
public function testGetWithParamsWillUseSharedInstance()
{
$di = new Di();
$sharedInstanceClass = 'ZendTest\\Di\\TestAsset\\ConstructorInjection\\A';
$retrievedInstanceClass = 'ZendTest\\Di\\TestAsset\\ConstructorInjection\\C';
// Provide definitions for $retrievedInstanceClass, but not for $sharedInstanceClass.
$arrayDefinition = array($retrievedInstanceClass => array('supertypes' => array(), 'instantiator' => '__construct', 'methods' => array('__construct' => true), 'parameters' => array('__construct' => array("{$retrievedInstanceClass}::__construct:0" => array('a', $sharedInstanceClass, true, NULL), "{$retrievedInstanceClass}::__construct:1" => array('params', NULL, false, array())))));
// This also disables scanning of class A.
$di->setDefinitionList(new DefinitionList(new Definition\ArrayDefinition($arrayDefinition)));
$di->instanceManager()->addSharedInstance(new $sharedInstanceClass(), $sharedInstanceClass);
$returnedC = $di->get($retrievedInstanceClass, array('params' => array('test')));
$this->assertInstanceOf($retrievedInstanceClass, $returnedC);
}
作者:totoloui
项目:ZF2-Aut
/**
* Overrides Zend\Di to allow the given serviceLocator's services to be reused by Di itself
*
* {@inheritDoc}
*
* @throws Exception\InvalidServiceNameException
*/
public function get($name, array $params = array())
{
if (null === $this->serviceLocator) {
throw new DomainException('No ServiceLocator defined, use `createServiceWithName` instead of `get`');
}
if (self::USE_SL_BEFORE_DI === $this->useServiceLocator && $this->serviceLocator->has($name)) {
return $this->serviceLocator->get($name);
}
try {
return parent::get($name, $params);
} catch (ClassNotFoundException $e) {
if (self::USE_SL_AFTER_DI === $this->useServiceLocator && $this->serviceLocator->has($name)) {
return $this->serviceLocator->get($name);
}
throw new Exception\ServiceNotFoundException(sprintf('Service %s was not found in this DI instance', $name), null, $e);
}
}