| @@ 31-43 (lines=13) @@ | ||
| 28 | $definition = $container->findDefinition('mrtn_json_api.object_mapper.link_repository_provider'); |
|
| 29 | $repositories = $container->findTaggedServiceIds('mrtn_json_api.object_mapper.link_repository'); |
|
| 30 | ||
| 31 | foreach ($repositories as $id => $tags) { |
|
| 32 | foreach ($tags as $tag) |
|
| 33 | { |
|
| 34 | if (! isset($tag['alias'])) { |
|
| 35 | throw new \LogicException('Alias must be defined for a "link-repository" tag'); |
|
| 36 | } |
|
| 37 | ||
| 38 | $definition->addMethodCall('registerRepository', [ |
|
| 39 | trim($tag['alias']), |
|
| 40 | new Reference($id) |
|
| 41 | ]); |
|
| 42 | } |
|
| 43 | } |
|
| 44 | } |
|
| 45 | ||
| 46 | protected function processDataTypeHandlers(ContainerBuilder $container) |
|
| @@ 127-136 (lines=10) @@ | ||
| 124 | $mapper = new DefinitionDecorator('mrtn_json_api.object_mapper.abstract'); |
|
| 125 | $mapper->addTag('mrtn_json_api.object_mapper', ['alias' => $name]); |
|
| 126 | ||
| 127 | foreach ($mapperDefinition['handlers'] as $handlerName) |
|
| 128 | { |
|
| 129 | if (! isset($handlers[$handlerName])) { |
|
| 130 | throw new \LogicException(sprintf('Mapping handler with name "%s" has not been registered as a service.', $handlerName)); |
|
| 131 | } |
|
| 132 | ||
| 133 | $mapper->addMethodCall('addHandler', [ |
|
| 134 | new Reference($handlers[$handlerName]) |
|
| 135 | ]); |
|
| 136 | } |
|
| 137 | ||
| 138 | $container->setDefinition('mrtn_json_api.object_mapper.' . $name, $mapper); |
|
| 139 | } |
|