Skip to content

Commit 9b62371

Browse files
committed
Issue 49
1 parent fbc214b commit 9b62371

4 files changed

Lines changed: 51 additions & 0 deletions

File tree

‎config/pipeline.php‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
declare(strict_types=1);
44

55
use Dot\ErrorHandler\ErrorHandlerInterface;
6+
use Light\App\Middleware\PoweredByMiddleware;
67
use Mezzio\Application;
78
use Mezzio\Handler\NotFoundHandler;
89
use Mezzio\Helper\ServerUrlMiddleware;
@@ -18,6 +19,7 @@
1819
// all Exceptions.
1920
$app->pipe(ErrorHandlerInterface::class);
2021
$app->pipe(ServerUrlMiddleware::class);
22+
$app->pipe(PoweredByMiddleware::class);
2123

2224
// Pipe more middleware here that you want to execute on every request:
2325
// - bootstrapping

‎src/App/src/ConfigProvider.php‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,11 @@
1616
use Light\App\Factory\GetFeedViewHandlerFactory;
1717
use Light\App\Factory\GetIndexViewHandlerFactory;
1818
use Light\App\Factory\GetMarkdownArticleHandlerFactory;
19+
use Light\App\Factory\PoweredByMiddlewareFactory;
1920
use Light\App\Handler\GetFeedViewHandler;
2021
use Light\App\Handler\GetIndexViewHandler;
2122
use Light\App\Handler\GetMarkdownArticleHandler;
23+
use Light\App\Middleware\PoweredByMiddleware;
2224
use Light\App\Resolver\EntityListenerResolver;
2325
use Light\App\Service\FeedGenerator;
2426
use Mezzio\Application;
@@ -118,6 +120,7 @@ public function getDependencies(): array
118120
GetFeedViewHandler::class => GetFeedViewHandlerFactory::class,
119121
GetMarkdownArticleHandler::class => GetMarkdownArticleHandlerFactory::class,
120122
FeedGenerator::class => FeedGeneratorFactory::class,
123+
PoweredByMiddleware::class => PoweredByMiddlewareFactory::class,
121124
],
122125
'aliases' => [
123126
EntityManager::class => 'doctrine.entity_manager.orm_default',
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Light\App\Factory;
6+
7+
use Light\App\Middleware\PoweredByMiddleware;
8+
use Psr\Container\ContainerInterface;
9+
10+
class PoweredByMiddlewareFactory
11+
{
12+
public function __invoke(ContainerInterface $container): PoweredByMiddleware
13+
{
14+
$config = $container->get('config');
15+
16+
return new PoweredByMiddleware($config['application']['meta']['siteName'] ?? '');
17+
}
18+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Light\App\Middleware;
6+
7+
use Psr\Http\Message\ResponseInterface;
8+
use Psr\Http\Message\ServerRequestInterface;
9+
use Psr\Http\Server\MiddlewareInterface;
10+
use Psr\Http\Server\RequestHandlerInterface;
11+
12+
class PoweredByMiddleware implements MiddlewareInterface
13+
{
14+
public function __construct(private readonly string $siteName)
15+
{
16+
}
17+
18+
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
19+
{
20+
$response = $handler->handle($request);
21+
22+
if ($this->siteName === '') {
23+
return $response;
24+
}
25+
26+
return $response->withHeader('X-Powered-By', $this->siteName);
27+
}
28+
}

0 commit comments

Comments
 (0)