Skip to content

Commit

Permalink
ImageStorageExtension: add
Browse files Browse the repository at this point in the history
  • Loading branch information
MartkCz committed May 22, 2021
1 parent 1dbc31a commit bada8de
Showing 1 changed file with 18 additions and 37 deletions.
55 changes: 18 additions & 37 deletions src/Bridge/Nette/DI/ImageStorageExtension.php
Expand Up @@ -156,10 +156,6 @@ public function beforeCompile(): void
{
$builder = $this->getContainerBuilder();

$this->injectNormalizers($builder);
$this->injectRemovers($builder);
$this->injectPersisters($builder);

$serviceName = $builder->getByType(Bar::class);
if ($serviceName) {
if ($builder->hasDefinition($this->prefix('tracy.bar'))) {
Expand All @@ -185,36 +181,6 @@ public function beforeCompile(): void
}
}

private function injectNormalizers(ContainerBuilder $builder): void
{
$service = $builder->getDefinition($this->prefix('filter.normalizerCollection'));
assert($service instanceof ServiceDefinition);

foreach ($builder->findByType(FilterNormalizerInterface::class) as $normalizer) {
$service->addSetup('add', [$normalizer]);
}
}

private function injectPersisters(ContainerBuilder $builder): void
{
$service = $builder->getDefinition($this->prefix('persisterRegistry'));
assert($service instanceof ServiceDefinition);

foreach ($builder->findByType(PersisterInterface::class) as $persister) {
$service->addSetup('add', [$persister]);
}
}

private function injectRemovers(ContainerBuilder $builder): void
{
$service = $builder->getDefinition($this->prefix('removerRegistry'));
assert($service instanceof ServiceDefinition);

foreach ($builder->findByType(RemoverInterface::class) as $remover) {
$service->addSetup('add', [$remover]);
}
}

private function loadFilesystem(ContainerBuilder $builder): void
{
if (!isset($builder->parameters['wwwDir'])) {
Expand Down Expand Up @@ -270,10 +236,15 @@ private function loadDatabase(ContainerBuilder $builder): void

private function loadFilter(ContainerBuilder $builder): void
{
$builder->addDefinition($this->prefix('filter.normalizerCollection'))
$normalizerCollection = $builder->addDefinition($this->prefix('filter.normalizerCollection'))
->setType(FilterNormalizerCollectionInterface::class)
->setFactory(FilterNormalizerCollection::class);

$this->onBeforeCompile[] = fn () => $this->foreach(
$builder->findByType(FilterNormalizerInterface::class),
fn (Definition $definition) => $normalizerCollection->addSetup('add', [$definition])
);

$builder->addDefinition($this->prefix('filterProcessor'))
->setType(FilterProcessorInterface::class)
->setFactory(VoidFilterProcessor::class);
Expand Down Expand Up @@ -389,10 +360,15 @@ private function loadDebugger(ContainerBuilder $builder): void

private function loadPersister(ContainerBuilder $builder): void
{
$builder->addDefinition($this->prefix('persisterRegistry'))
$persisterRegistry = $builder->addDefinition($this->prefix('persisterRegistry'))
->setType(PersisterRegistryInterface::class)
->setFactory(PersisterRegistry::class);

$this->onBeforeCompile[] = fn () => $this->foreach(
$builder->findByType(PersisterInterface::class),
fn (Definition $definition) => $persisterRegistry->addSetup('add', [$definition])
);

$builder->addDefinition($this->prefix('persisters.emptyImage'))
->setType(PersisterInterface::class)
->setFactory(EmptyImagePersister::class);
Expand All @@ -408,10 +384,15 @@ private function loadPersister(ContainerBuilder $builder): void

private function loadRemover(ContainerBuilder $builder): void
{
$builder->addDefinition($this->prefix('removerRegistry'))
$removerRegistry = $builder->addDefinition($this->prefix('removerRegistry'))
->setType(RemoverRegistryInterface::class)
->setFactory(RemoverRegistry::class);

$this->onBeforeCompile[] = fn () => $this->foreach(
$builder->findByType(RemoverInterface::class),
fn (Definition $definition) => $removerRegistry->addSetup('add', [$definition])
);

$builder->addDefinition($this->prefix('removers.emptyImage'))
->setType(RemoverInterface::class)
->setFactory(EmptyImageRemover::class);
Expand Down

0 comments on commit bada8de

Please sign in to comment.