Skip to content

Commit

Permalink
return early when possible on services and container check at Express…
Browse files Browse the repository at this point in the history
…iveFactory
  • Loading branch information
samsonasik committed May 13, 2018
1 parent 48fdadc commit ad8f376
Showing 1 changed file with 18 additions and 7 deletions.
25 changes: 18 additions & 7 deletions src/Middleware/ExpressiveFactory.php
Expand Up @@ -15,12 +15,24 @@

class ExpressiveFactory
{
private function createMiddlewareInstance(ContainerInterface $container, array $configuration) : Expressive
{
return new Expressive(
$configuration['error-hero-module'],
$container->get(Logging::class),
$container->get(TemplateRendererInterface::class)
);
}

public function __invoke(ContainerInterface $container) : Expressive
{
$configuration = $container->get('config');

if ($container->has(EntityManager::class) && ! isset($configuration['db'])) {
$container = Doctrine::transform($container, $configuration);
return $this->createMiddlewareInstance(
Doctrine::transform($container, $configuration),
$configuration
);
}

if ($container instanceof SymfonyContainerBuilder) {
Expand All @@ -29,13 +41,12 @@ public function __invoke(ContainerInterface $container) : Expressive
throw new RuntimeException('db config is required for build "ErrorHeroModuleLogger" service by Symfony Container');
}

$container = SymfonyService::transform($container, $configuration);
return $this->createMiddlewareInstance(
SymfonyService::transform($container, $configuration),
$configuration
);
}

return new Expressive(
$configuration['error-hero-module'],
$container->get(Logging::class),
$container->get(TemplateRendererInterface::class)
);
return $this->createMiddlewareInstance($container, $configuration);
}
}

0 comments on commit ad8f376

Please sign in to comment.