Slide 78
Slide 78 text
// ../src/DependencyInjection/SymfonyWorldExtension.php
class SymfonyWorldExtension extends Extension
{
public function load(array $configs, ContainerBuilder $container)
{
$config = $this->processConfiguration(
$this->getConfiguration($configs, $container),
$configs
);
$loader = new PhpFileLoader($container, new FileLocator(\dirname(__DIR__, 2).'/config'));
$loader->load('services.php');
$container
->getDefinition('symfony_world.service')
->setArgument('$edition', Edition::from($config['edition']))
->setArgument('$year', $config['year'])
// /config/services.php
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
return static function (ContainerConfigurator $container) {
$services = $container->services();
$services
->set('symfony_world.service', SymfonyWorldService::class)
->private()
->args([abstract_arg('edition'), abstract_arg('year')]);
};