add chapter 11 solutions
This commit is contained in:
parent
9b14e32639
commit
350f8e18b9
21 changed files with 1975 additions and 0 deletions
implementation/11/config
36
implementation/11/config/container.php
Normal file
36
implementation/11/config/container.php
Normal file
|
@ -0,0 +1,36 @@
|
|||
<?php declare(strict_types=1);
|
||||
use FastRoute\Dispatcher;
|
||||
|
||||
use DI\ContainerBuilder;
|
||||
use Laminas\Diactoros\Response;
|
||||
use Laminas\Diactoros\ServerRequestFactory;
|
||||
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,
|
||||
Dispatcher::class => fn () => simpleDispatcher(require __DIR__ . '/routes.php'),
|
||||
Clock::class => fn () => new SystemClock,
|
||||
Renderer::class => fn (MustacheRenderer $me) => $me,
|
||||
Mustache_Loader_FilesystemLoader::class => fn () => new Mustache_Loader_FilesystemLoader(
|
||||
__DIR__ . '/../templates',
|
||||
[
|
||||
'extension' => '.html',
|
||||
]
|
||||
),
|
||||
Mustache_Engine::class => fn (Mustache_Loader_FilesystemLoader $loader) => new Mustache_Engine([
|
||||
'loader' => $loader,
|
||||
]),
|
||||
]
|
||||
);
|
||||
|
||||
return $builder->build();
|
12
implementation/11/config/routes.php
Normal file
12
implementation/11/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));
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue