Esempio n. 1
0
<?php

require_once __DIR__ . '/../includes/classes.php';
$container = new sfServiceContainerBuilder();
$container->register('foo', 'FooClass')->setConstructor('getInstance')->setArguments(array('foo', new sfServiceReference('foo.baz'), array('%foo%' => 'foo is %foo%'), true, new sfServiceReference('service_container')))->setFile(realpath(__DIR__ . '/../includes/foo.php'))->setShared(false)->addMethodCall('setBar', array('bar'))->addMethodCall('initialize')->setConfigurator('sc_configure');
$container->register('bar', 'FooClass')->setArguments(array('foo', new sfServiceReference('foo.baz'), new sfServiceParameter('foo_bar')))->setShared(true)->setConfigurator(array(new sfServiceReference('foo.baz'), 'configure'));
$container->register('foo.baz', '%baz_class%')->setConstructor('getInstance')->setConfigurator(array('%baz_class%', 'configureStatic1'));
$container->register('foo_bar', 'FooClass');
$container->setParameters(array('baz_class' => 'BazClass', 'foo' => 'bar', 'foo_bar' => new sfServiceReference('foo_bar')));
$container->setAlias('alias_for_foo', 'foo');
return $container;
$t->diag('->getAliases()');
$builder = new sfServiceContainerBuilder();
$builder->setAlias('bar', 'foo');
$builder->setAlias('foobar', 'foo');
$t->is($builder->getAliases(), array('bar' => 'foo', 'foobar' => 'foo'), '->getAliases() returns all service aliases');
$builder->register('bar', 'stdClass');
$t->is($builder->getAliases(), array('foobar' => 'foo'), '->getAliases() does not return aliased services that have been overridden');
$builder->setService('foobar', 'stdClass');
$t->is($builder->getAliases(), array(), '->getAliases() does not return aliased services that have been overridden');
// ->hasService()
$t->diag('->hasService()');
$builder = new sfServiceContainerBuilder();
$t->ok(!$builder->hasService('foo'), '->hasService() returns false if the service does not exist');
$builder->register('foo', 'FooClass');
$t->ok($builder->hasService('foo'), '->hasService() returns true if a service definition exists');
$builder->setAlias('foobar', 'foo');
$t->ok($builder->hasService('foo'), '->hasService() returns true if a service definition exists');
$builder->setService('bar', new stdClass());
$t->ok($builder->hasService('bar'), '->hasService() returns true if a service exists');
$builder->setAlias('foobar2', 'foo');
$t->ok($builder->hasService('foobar2'), '->hasService() returns true if a service exists');
// ->getService()
$t->diag('->getService()');
$builder = new sfServiceContainerBuilder();
try {
    $builder->getService('foo');
    $t->fail('->getService() throws an InvalidArgumentException if the service does not exist');
} catch (InvalidArgumentException $e) {
    $t->pass('->getService() throws an InvalidArgumentException if the service does not exist');
}
$builder->register('foo', 'stdClass');