add chapter 12 solutions
This commit is contained in:
parent
f857fa4752
commit
ebbcc6e7f6
23 changed files with 1998 additions and 0 deletions
38
implementation/12/config/container.php
Normal file
38
implementation/12/config/container.php
Normal file
|
@ -0,0 +1,38 @@
|
|||
<?php declare(strict_types=1);
|
||||
|
||||
use DI\ContainerBuilder;
|
||||
use FastRoute\Dispatcher;
|
||||
use Laminas\Diactoros\Response;
|
||||
use Laminas\Diactoros\ServerRequestFactory;
|
||||
use Lubian\NoFramework\Configuration;
|
||||
use Lubian\NoFramework\Service\Time\Clock;
|
||||
use Lubian\NoFramework\Service\Time\SystemClock;
|
||||
use Lubian\NoFramework\Template\MustacheRenderer;
|
||||
use Lubian\NoFramework\Template\Renderer;
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
use Psr\Http\Message\ServerRequestInterface;
|
||||
|
||||
use function FastRoute\simpleDispatcher;
|
||||
|
||||
$builder = new ContainerBuilder;
|
||||
$builder->addDefinitions(
|
||||
[
|
||||
ServerRequestInterface::class => fn () => ServerRequestFactory::fromGlobals(),
|
||||
ResponseInterface::class => fn () => new Response,
|
||||
Clock::class => fn () => new SystemClock,
|
||||
Renderer::class => fn (MustacheRenderer $me) => $me,
|
||||
Dispatcher::class => fn (Configuration $c) => simpleDispatcher(require $c->routesFile),
|
||||
Mustache_Loader_FilesystemLoader::class => fn (Configuration $c) => new Mustache_Loader_FilesystemLoader(
|
||||
$c->templateDir,
|
||||
[
|
||||
'extension' => $c->templateExtension,
|
||||
]
|
||||
),
|
||||
Mustache_Engine::class => fn (Mustache_Loader_FilesystemLoader $loader) => new Mustache_Engine([
|
||||
'loader' => $loader,
|
||||
]),
|
||||
Configuration::class => fn () => require __DIR__ . '/settings.php',
|
||||
]
|
||||
);
|
||||
|
||||
return $builder->build();
|
12
implementation/12/config/routes.php
Normal file
12
implementation/12/config/routes.php
Normal file
|
@ -0,0 +1,12 @@
|
|||
<?php declare(strict_types=1);
|
||||
|
||||
use FastRoute\RouteCollector;
|
||||
use Lubian\NoFramework\Action\Hello;
|
||||
use Lubian\NoFramework\Action\Other;
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
|
||||
return function (RouteCollector $r) {
|
||||
$r->addRoute('GET', '/hello[/{name}]', Hello::class);
|
||||
$r->addRoute('GET', '/other', [Other::class, 'handle']);
|
||||
$r->addRoute('GET', '/', fn (ResponseInterface $r) => $r->withHeader('Location', '/hello') ->withStatus(302));
|
||||
};
|
5
implementation/12/config/settings.php
Normal file
5
implementation/12/config/settings.php
Normal file
|
@ -0,0 +1,5 @@
|
|||
<?php declare(strict_types=1);
|
||||
|
||||
return new \Lubian\NoFramework\Configuration(
|
||||
environment: 'prod',
|
||||
);
|
Loading…
Add table
Add a link
Reference in a new issue