/
AbstractLoaderFactory.php
59 lines (49 loc) · 1.65 KB
/
AbstractLoaderFactory.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?php
/*
* This file is part of the `liip/LiipImagineBundle` project.
*
* (c) https://github.com/liip/LiipImagineBundle/graphs/contributors
*
* For the full copyright and license information, please view the LICENSE.md
* file that was distributed with this source code.
*/
namespace Liip\ImagineBundle\DependencyInjection\Factory\Loader;
use Liip\ImagineBundle\DependencyInjection\Factory\ChildDefinitionTrait;
use Symfony\Component\DependencyInjection\ChildDefinition;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Definition;
use Symfony\Component\DependencyInjection\DefinitionDecorator;
abstract class AbstractLoaderFactory implements LoaderFactoryInterface
{
use ChildDefinitionTrait;
/**
* @var string
*/
protected static $namePrefix = 'liip_imagine.binary.loader';
/**
* @return ChildDefinition|DefinitionDecorator
*/
final protected function getChildLoaderDefinition()
{
return $this->getChildDefinition(sprintf('%s.prototype.%s', static::$namePrefix, $this->getName()));
}
/**
* @param string $name
* @param Definition $definition
* @param ContainerBuilder $container
*
* @return string
*/
final protected function setTaggedLoaderDefinition($name, Definition $definition, ContainerBuilder $container)
{
$definition->addTag(static::$namePrefix, [
'loader' => $name,
]);
$definition->setPublic(true);
$container->setDefinition(
$id = sprintf('%s.%s', static::$namePrefix, $name),
$definition
);
return $id;
}
}