Skip to content
This repository was archived by the owner on Sep 16, 2021. It is now read-only.

Commit 6a338b5

Browse files
committed
Renamed decorator to enhancer
1 parent 3f2f8c4 commit 6a338b5

File tree

17 files changed

+115
-78
lines changed

17 files changed

+115
-78
lines changed

CmfResourceRestBundle.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@
1313

1414
use Symfony\Component\HttpKernel\Bundle\Bundle;
1515
use Symfony\Component\DependencyInjection\ContainerBuilder;
16-
use Symfony\Cmf\Bundle\ResourceRestBundle\DependencyInjection\Compiler\DecoratorPass;
16+
use Symfony\Cmf\Bundle\ResourceRestBundle\DependencyInjection\Compiler\EnhancerPass;
1717

1818
class CmfResourceRestBundle extends Bundle
1919
{
2020
public function build(ContainerBuilder $container)
2121
{
22-
$container->addCompilerPass(new DecoratorPass());
22+
$container->addCompilerPass(new EnhancerPass());
2323
parent::build($container);
2424
}
2525
}

DependencyInjection/CmfResourceRestExtension.php

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,15 @@ public function load(array $configs, ContainerBuilder $container)
5454

5555
$loader->load('serializer.xml');
5656
$loader->load('resource-rest.xml');
57-
$loader->load('decorator.xml');
57+
$loader->load('enhancer.xml');
5858

5959
$this->configurePayloadAliasRegistry($container, $config['payload_alias_map']);
60-
$this->configureDecoratorMap($container, $config['decorator_map']);
60+
$this->configureEnhancerMap($container, $config['enhancer_map']);
61+
}
62+
63+
public function getNamespace()
64+
{
65+
return 'http://cmf.symfony.com/schema/dic/' . $this->getAlias();
6166
}
6267

6368
private function configurePayloadAliasRegistry(ContainerBuilder $container, $aliasMap)
@@ -66,14 +71,28 @@ private function configurePayloadAliasRegistry(ContainerBuilder $container, $ali
6671
$registry->replaceArgument(1, $aliasMap);
6772
}
6873

69-
private function configureDecoratorMap(ContainerBuilder $container, $decoratorMap)
74+
private function configureEnhancerMap(ContainerBuilder $container, $enhancerMap)
7075
{
71-
$registry = $container->getDefinition('cmf_resource_rest.registry.decorator');
72-
$registry->replaceArgument(1, $decoratorMap);
76+
$enhancerMap = $this->normalizeEnhancerMap($enhancerMap);
77+
$registry = $container->getDefinition('cmf_resource_rest.registry.enhancer');
78+
$registry->replaceArgument(1, $enhancerMap);
7379
}
7480

75-
public function getNamespace()
81+
private function normalizeEnhancerMap($enhancerMap)
7682
{
77-
return 'http://cmf.symfony.com/schema/dic/' . $this->getAlias();
83+
// normalize enhancer map
84+
$normalized = array();
85+
foreach ($enhancerMap as $enhancerMapping) {
86+
$repository = $enhancerMapping['repository'];
87+
$enhancer = $enhancerMapping['enhancer'];
88+
89+
if (!isset($normalized[$repository])) {
90+
$normalized[$repository] = array();
91+
}
92+
93+
$normalized[$repository][] = $enhancer;
94+
}
95+
96+
return $normalized;
7897
}
7998
}

DependencyInjection/Compiler/DecoratorPass.php renamed to DependencyInjection/Compiler/EnhancerPass.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,22 +19,22 @@
1919
/**
2020
* @author Daniel Leech <[email protected]>
2121
*/
22-
class DecoratorPass implements CompilerPassInterface
22+
class EnhancerPass implements CompilerPassInterface
2323
{
2424
public function process(ContainerBuilder $container)
2525
{
26-
if (!$container->has('cmf_resource_rest.registry.decorator')) {
26+
if (!$container->has('cmf_resource_rest.registry.enhancer')) {
2727
return;
2828
}
2929

30-
$taggedIds = $container->findTaggedServiceIds('cmf_resource_rest.decorator');
30+
$taggedIds = $container->findTaggedServiceIds('cmf_resource_rest.enhancer');
3131

3232
$repositoryMap = array();
3333
$aliasMap = array();
3434
foreach ($taggedIds as $id => $attributes) {
3535
if (!isset($attributes[0]['alias'])) {
3636
throw new InvalidArgumentException(sprintf(
37-
'Resource decorator "%s" has no "alias" attribute in its tag',
37+
'Resource enhancer "%s" has no "alias" attribute in its tag',
3838
$id
3939
));
4040
}
@@ -43,7 +43,7 @@ public function process(ContainerBuilder $container)
4343

4444
if (isset($aliasMap[$name])) {
4545
throw new InvalidArgumentException(sprintf(
46-
'Decorator with name "%s" (id: "%s") has already been registered',
46+
'Enhancer with name "%s" (id: "%s") has already been registered',
4747
$name,
4848
$id
4949
));
@@ -52,7 +52,7 @@ public function process(ContainerBuilder $container)
5252
$aliasMap[$name] = $id;
5353
}
5454

55-
$registryDef = $container->getDefinition('cmf_resource_rest.registry.decorator');
55+
$registryDef = $container->getDefinition('cmf_resource_rest.registry.enhancer');
5656
$registryDef->replaceArgument(2, $aliasMap);
5757
}
5858
}

DependencyInjection/Configuration.php

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ public function getConfigTreeBuilder()
2626
$treeBuilder = new TreeBuilder();
2727
$treeBuilder->root('cmf_resource_rest')
2828
->fixXmlConfig('payload_alias', 'payload_alias_map')
29+
->fixXmlConfig('enhance', 'enhancer_map')
2930
->children()
3031
->arrayNode('payload_alias_map')
3132
->useAttributeAsKey('name')
@@ -36,10 +37,12 @@ public function getConfigTreeBuilder()
3637
->end()
3738
->end()
3839
->end()
39-
->arrayNode('decorator_map')
40-
->useAttributeAsKey('repository')
40+
->arrayNode('enhancer_map')
4141
->prototype('array')
42-
->prototype('scalar')->end()
42+
->children()
43+
->scalarNode('repository')->isRequired()->end()
44+
->scalarNode('enhancer')->isRequired()->end()
45+
->end()
4346
->end()
4447
->end()
4548
->end();

Decorator/DecoratorInterface.php renamed to Enhancer/EnhancerInterface.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,27 +9,27 @@
99
* file that was distributed with this source code.
1010
*/
1111

12-
namespace Symfony\Cmf\Bundle\ResourceRestBundle\Decorator;
12+
namespace Symfony\Cmf\Bundle\ResourceRestBundle\Enhancer;
1313

1414
use JMS\Serializer\Context;
1515
use Puli\Repository\Api\Resource\Resource;
1616

1717
/**
18-
* Decorator classes decorate the REST response for resources
18+
* Enhancer classes enhance the REST response for resources
1919
*
2020
* @author Daniel Leech <[email protected]>
2121
*/
22-
interface DecoratorInterface
22+
interface EnhancerInterface
2323
{
2424
/**
25-
* Decorate the given serialization context.
25+
* Enhance the given serialization context.
2626
*
2727
* For example:
2828
*
2929
* $context->addData('foobar', 'Some value');
3030
*
3131
* @param Context Serialization context
32-
* @param resource The resource being serialized
32+
* @param Resource The resource being serialized
3333
*/
34-
public function decorate(Context $context, Resource $resource);
34+
public function enhance(Context $context, Resource $resource);
3535
}

Decorator/PayloadDecorator.php renamed to Enhancer/PayloadEnhancer.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
* file that was distributed with this source code.
1010
*/
1111

12-
namespace Symfony\Cmf\Bundle\ResourceRestBundle\Decorator;
12+
namespace Symfony\Cmf\Bundle\ResourceRestBundle\Enhancer;
1313

1414
use JMS\Serializer\Context;
1515
use Puli\Repository\Api\Resource\Resource;
@@ -19,12 +19,12 @@
1919
*
2020
* @author Daniel Leech <[email protected]>
2121
*/
22-
class PayloadDecorator implements DecoratorInterface
22+
class PayloadEnhancer implements EnhancerInterface
2323
{
2424
/**
2525
* {@inheritDoc}
2626
*/
27-
public function decorate(Context $context, Resource $resource)
27+
public function enhance(Context $context, Resource $resource)
2828
{
2929
$visitor = $context->getVisitor();
3030
$visitor->addData('payload', $context->accept($resource->getPayload()));

Registry/DecoratorRegistry.php renamed to Registry/EnhancerRegistry.php

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@
1818
use Puli\Repository\Api\ResourceRepository;
1919

2020
/**
21-
* Registry for resource decorators
21+
* Registry for resource enhancers
2222
*
2323
* @author Daniel Leech <[email protected]>
2424
*/
25-
class DecoratorRegistry
25+
class EnhancerRegistry
2626
{
2727
/**
2828
* @var array
@@ -32,7 +32,7 @@ class DecoratorRegistry
3232
/**
3333
* @var array
3434
*/
35-
private $decoratorMap = array();
35+
private $enhancerMap = array();
3636

3737
/**
3838
* @var ContainerInterface
@@ -41,49 +41,49 @@ class DecoratorRegistry
4141

4242
/**
4343
* @param ContainerInterface $container The service container
44-
* @param array $decoratorMap Map of decorator aliases to repository names
45-
* @param array $aliasMap Serice ID map for decorator aliases
44+
* @param array $enhancerMap Map of enhancer aliases to repository names
45+
* @param array $aliasMap Serice ID map for enhancer aliases
4646
*/
4747
public function __construct(
4848
ContainerInterface $container,
49-
$decoratorMap = array(),
49+
$enhancerMap = array(),
5050
$aliasMap = array()
5151
)
5252
{
5353
$this->container = $container;
54-
$this->decoratorMap = $decoratorMap;
54+
$this->enhancerMap = $enhancerMap;
5555
$this->aliasMap = $aliasMap;
5656
}
5757

5858
/**
59-
* Return all of the decorators which are reigstered against
59+
* Return all of the enhancers which are reigstered against
6060
* the repository with the given alias.
6161
*
6262
* @param string $repositoryAlias
63-
* @return DecoratorInterface[]
63+
* @return EnhancerInterface[]
6464
*/
65-
public function getDecorators($repositoryAlias)
65+
public function getEnhancers($repositoryAlias)
6666
{
67-
if (!isset($this->decoratorMap[$repositoryAlias])) {
67+
if (!isset($this->enhancerMap[$repositoryAlias])) {
6868
return array();
6969
}
7070

71-
$aliases = $this->decoratorMap[$repositoryAlias];
71+
$aliases = $this->enhancerMap[$repositoryAlias];
7272

7373
foreach ($aliases as $alias) {
7474
if (!isset($this->aliasMap[$alias])) {
7575
throw new \InvalidArgumentException(sprintf(
76-
'Unknown decorator alias "%s". Known aliases: "%s"',
76+
'Unknown enhancer alias "%s". Known aliases: "%s"',
7777
implode('", "', array_keys($this->aliasMap))
7878
));
7979
}
8080

81-
$decorator = $this->container->get(
81+
$enhancer = $this->container->get(
8282
$this->aliasMap[$alias]
8383
);
84-
$decorators[] = $decorator;
84+
$enhancers[] = $enhancer;
8585
}
8686

87-
return $decorators;
87+
return $enhancers;
8888
}
8989
}

Resources/config/decorator.xml renamed to Resources/config/enhancer.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@
55
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
66

77
<parameters>
8-
<parameter key="cmf_resource_rest.decorator.payload.class">Symfony\Cmf\Bundle\ResourceRestBundle\Decorator\PayloadDecorator</parameter>
8+
<parameter key="cmf_resource_rest.enhancer.payload.class">Symfony\Cmf\Bundle\ResourceRestBundle\Enhancer\PayloadEnhancer</parameter>
99
</parameters>
1010

1111
<services>
1212

13-
<service id="cmf_resource_rest.decorator.payload" class="%cmf_resource_rest.decorator.payload.class%">
14-
<tag name="cmf_resource_rest.decorator" alias="payload" />
13+
<service id="cmf_resource_rest.enhancer.payload" class="%cmf_resource_rest.enhancer.payload.class%">
14+
<tag name="cmf_resource_rest.enhancer" alias="payload" />
1515
</service>
1616

1717
</services>

Resources/config/resource-rest.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<parameter key="cmf_resource_rest.controller.resource.class">Symfony\Cmf\Bundle\ResourceRestBundle\Controller\ResourceController</parameter>
99
<parameter key="cmf_resource_rest.path_helper.class">Symfony\Cmf\Bundle\ResourceRestBundle\Helper\PathHelper</parameter>
1010
<parameter key="cmf_resource_rest.registry.payload_alias.class">Symfony\Cmf\Bundle\ResourceRestBundle\Registry\PayloadAliasRegistry</parameter>
11-
<parameter key="cmf_resource_rest.registry.decorator.class">Symfony\Cmf\Bundle\ResourceRestBundle\Registry\DecoratorRegistry</parameter>
11+
<parameter key="cmf_resource_rest.registry.enhancer.class">Symfony\Cmf\Bundle\ResourceRestBundle\Registry\EnhancerRegistry</parameter>
1212
</parameters>
1313

1414
<services>
@@ -26,7 +26,7 @@
2626
<argument type="collection" />
2727
</service>
2828

29-
<service id="cmf_resource_rest.registry.decorator" class="%cmf_resource_rest.registry.decorator.class%">
29+
<service id="cmf_resource_rest.registry.enhancer" class="%cmf_resource_rest.registry.enhancer.class%">
3030
<argument type="service" id="service_container" />
3131
<argument type="collection" />
3232
<argument type="collection" />

Resources/config/serializer.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
<service id="cmf_resource_rest.serializer.subscriber.resource" class="%cmf_resource_rest.serializer.subscriber.resource.class%">
3131
<argument type="service" id="cmf_resource.registry" />
3232
<argument type="service" id="cmf_resource_rest.registry.payload_alias" />
33-
<argument type="service" id="cmf_resource_rest.registry.decorator" />
33+
<argument type="service" id="cmf_resource_rest.registry.enhancer" />
3434
<tag name="jms_serializer.event_subscriber" />
3535
</service>
3636

0 commit comments

Comments
 (0)