-
-
Notifications
You must be signed in to change notification settings - Fork 52
/
ServerRequestErrorResponseGeneratorFactory.php
44 lines (35 loc) · 1.48 KB
/
ServerRequestErrorResponseGeneratorFactory.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
<?php
/**
* @see https://github.com/mezzio/mezzio for the canonical source repository
* @copyright https://github.com/mezzio/mezzio/blob/master/COPYRIGHT.md
* @license https://github.com/mezzio/mezzio/blob/master/LICENSE.md New BSD License
*/
declare(strict_types=1);
namespace Mezzio\Container;
use Mezzio\Response\ServerRequestErrorResponseGenerator;
use Mezzio\Template\TemplateRendererInterface;
use Psr\Container\ContainerInterface;
use Psr\Http\Message\ResponseInterface;
use Webmozart\Assert\Assert;
class ServerRequestErrorResponseGeneratorFactory
{
public function __invoke(ContainerInterface $container) : ServerRequestErrorResponseGenerator
{
$config = $container->has('config') ? $container->get('config') : [];
Assert::isMap($config);
$debug = $config['debug'] ?? false;
$renderer = $container->has(TemplateRendererInterface::class)
? $container->get(TemplateRendererInterface::class)
: ($container->has(\Zend\Expressive\Template\TemplateRendererInterface::class)
? $container->get(\Zend\Expressive\Template\TemplateRendererInterface::class)
: null);
$template = $config['mezzio']['error_handler']['template_error']
?? ServerRequestErrorResponseGenerator::TEMPLATE_DEFAULT;
return new ServerRequestErrorResponseGenerator(
$container->get(ResponseInterface::class),
$debug,
$renderer,
$template
);
}
}