Skip to content

Commit

Permalink
[8-13] AppBundleのAppExtensionクラス
Browse files Browse the repository at this point in the history
  • Loading branch information
hidenorigoto committed Dec 28, 2015
1 parent 5a5e3ec commit 22d4580
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 0 deletions.
30 changes: 30 additions & 0 deletions docs/lists/ch08/08-13.txt
@@ -0,0 +1,30 @@
...
use AppBundle\Entity\MemberCollection;

class AppExtension extends Extension
{
public function load(array $configs, ContainerBuilder $container)
{
...
$config = $this->processConfiguration(new Configuration(), $configs);

$this->buildMemberCollectionDefinition($container, $config['members']);
}

private function buildMemberCollectionDefinition(ContainerBuilder $container, $memberList)
{
$collectionDefinition = $container->register('app.member_collection',
MemberCollection::class);

foreach ($memberList as $name => $memberInfo) {
$collectionDefinition->addMethodCall('addMember', [
$name, $memberInfo['part'], $memberInfo['joinedDate']
]);
}
}

public function getAlias()
{
return 'app';
}
}
17 changes: 17 additions & 0 deletions src/AppBundle/DependencyInjection/AppExtension.php
Expand Up @@ -5,6 +5,7 @@
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
use Symfony\Component\Config\FileLocator;
use AppBundle\Entity\MemberCollection;

class AppExtension extends Extension
{
Expand All @@ -13,6 +14,22 @@ public function load(array $configs, ContainerBuilder $container)
$loader = new YamlFileLoader($container,
new FileLocator(__DIR__.'/../Resources/config'));
$loader->load('services.yml');

$config = $this->processConfiguration(new Configuration(), $configs);

$this->buildMemberCollectionDefinition($container, $config['members']);
}

private function buildMemberCollectionDefinition(ContainerBuilder $container, $memberList)
{
$collectionDefinition = $container->register('app.member_collection',
MemberCollection::class);

foreach ($memberList as $name => $memberInfo) {
$collectionDefinition->addMethodCall('addMember', [
$name, $memberInfo['part'], $memberInfo['joinedDate']
]);
}
}

public function getAlias()
Expand Down

0 comments on commit 22d4580

Please sign in to comment.