Skip to content

Commit 49e3e42

Browse files
committed
BREAKING: renamed actions in handlers
"action" is an outdated terminology, and "handler" should be preferred. Also RequestHandlerInterface is usually a better fit than MiddlewareInterface for most our needs.
1 parent c625800 commit 49e3e42

File tree

5 files changed

+20
-25
lines changed

5 files changed

+20
-25
lines changed

src/Action/AbstractAction.php renamed to src/Handler/AbstractHandler.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22

33
declare(strict_types=1);
44

5-
namespace Ecodev\Felix\Action;
5+
namespace Ecodev\Felix\Handler;
66

77
use Laminas\Diactoros\Response\JsonResponse;
88
use Psr\Http\Message\ResponseInterface;
9-
use Psr\Http\Server\MiddlewareInterface;
9+
use Psr\Http\Server\RequestHandlerInterface;
1010

11-
abstract class AbstractAction implements MiddlewareInterface
11+
abstract class AbstractHandler implements RequestHandlerInterface
1212
{
1313
protected function createError(string $message): ResponseInterface
1414
{

src/Action/FileAction.php renamed to src/Handler/FileHandler.php

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,15 @@
22

33
declare(strict_types=1);
44

5-
namespace Ecodev\Felix\Action;
5+
namespace Ecodev\Felix\Handler;
66

77
use Doctrine\Persistence\ObjectRepository;
88
use Ecodev\Felix\Model\File;
99
use Laminas\Diactoros\Response;
1010
use Psr\Http\Message\ResponseInterface;
1111
use Psr\Http\Message\ServerRequestInterface;
12-
use Psr\Http\Server\RequestHandlerInterface;
1312

14-
final class FileAction extends AbstractAction
13+
final class FileHandler extends AbstractHandler
1514
{
1615
/**
1716
* @var ObjectRepository
@@ -26,7 +25,7 @@ public function __construct(ObjectRepository $fileRepository)
2625
/**
2726
* Serve a downloaded file from disk
2827
*/
29-
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
28+
public function handle(ServerRequestInterface $request): ResponseInterface
3029
{
3130
$id = $request->getAttribute('id');
3231

src/Action/GraphQLAction.php renamed to src/Handler/GraphQLHandler.php

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,15 @@
22

33
declare(strict_types=1);
44

5-
namespace Ecodev\Felix\Action;
5+
namespace Ecodev\Felix\Handler;
66

77
use Ecodev\Felix\Api\Server;
88
use Laminas\Diactoros\Response\JsonResponse;
99
use Psr\Http\Message\ResponseInterface;
1010
use Psr\Http\Message\ServerRequestInterface;
11-
use Psr\Http\Server\MiddlewareInterface;
1211
use Psr\Http\Server\RequestHandlerInterface;
1312

14-
final class GraphQLAction implements MiddlewareInterface
13+
final class GraphQLHandler implements RequestHandlerInterface
1514
{
1615
/**
1716
* @var Server
@@ -27,7 +26,7 @@ public function __construct(Server $server)
2726
* Process an incoming server request and return a response, optionally delegating
2827
* to the next middleware component to create the response.
2928
*/
30-
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
29+
public function handle(ServerRequestInterface $request): ResponseInterface
3130
{
3231
$response = $this->server->execute($request);
3332

src/Action/ImageAction.php renamed to src/Handler/ImageHandler.php

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,16 @@
22

33
declare(strict_types=1);
44

5-
namespace Ecodev\Felix\Action;
5+
namespace Ecodev\Felix\Handler;
66

77
use Doctrine\Persistence\ObjectRepository;
88
use Ecodev\Felix\Model\Image;
99
use Ecodev\Felix\Service\ImageResizer;
1010
use Laminas\Diactoros\Response;
1111
use Psr\Http\Message\ResponseInterface;
1212
use Psr\Http\Message\ServerRequestInterface;
13-
use Psr\Http\Server\RequestHandlerInterface;
1413

15-
final class ImageAction extends AbstractAction
14+
final class ImageHandler extends AbstractHandler
1615
{
1716
/**
1817
* @var ObjectRepository
@@ -33,7 +32,7 @@ public function __construct(ObjectRepository $imageRepository, ImageResizer $ima
3332
/**
3433
* Serve an image from disk, with optional dynamic resizing
3534
*/
36-
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
35+
public function handle(ServerRequestInterface $request): ResponseInterface
3736
{
3837
$id = $request->getAttribute('id');
3938

tests/Action/ImageActionTest.php renamed to tests/Handler/ImageHandlerTest.php

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,19 @@
22

33
declare(strict_types=1);
44

5-
namespace EcodevTests\Felix\Action;
5+
namespace EcodevTests\Felix\Handler;
66

77
use Doctrine\Persistence\ObjectRepository;
8-
use Ecodev\Felix\Action\ImageAction;
8+
use Ecodev\Felix\Handler\ImageHandler;
99
use Ecodev\Felix\Model\Image;
1010
use Ecodev\Felix\Service\ImageResizer;
1111
use Laminas\Diactoros\ServerRequest;
1212
use org\bovigo\vfs\vfsStream;
1313
use PHPUnit\Framework\TestCase;
1414
use Psr\Http\Message\ResponseInterface;
1515
use Psr\Http\Message\ServerRequestInterface;
16-
use Psr\Http\Server\RequestHandlerInterface;
1716

18-
class ImageActionTest extends TestCase
17+
class ImageHandlerTest extends TestCase
1918
{
2019
protected function setUp(): void
2120
{
@@ -45,7 +44,7 @@ public function testWillServeJpgByDefault(): void
4544
$request = new ServerRequest();
4645
$request = $request->withAttribute('maxHeight', $maxHeight);
4746

48-
$response = $this->process($repository, $imageResizer, $request);
47+
$response = $this->handle($repository, $imageResizer, $request);
4948

5049
self::assertSame('image/jpeg', $response->getHeaderLine('content-type'));
5150
self::assertSame('16', $response->getHeaderLine('content-length'));
@@ -68,18 +67,17 @@ public function testWillServeWebpIfAccepted(): void
6867
$request = $request->withAttribute('maxHeight', $maxHeight)
6968
->withHeader('accept', 'text/html, image/webp, */*;q=0.8');
7069

71-
$response = $this->process($repository, $imageResizer, $request);
70+
$response = $this->handle($repository, $imageResizer, $request);
7271

7372
self::assertSame('image/webp', $response->getHeaderLine('content-type'));
7473
self::assertSame('15', $response->getHeaderLine('content-length'));
7574
}
7675

77-
private function process(ObjectRepository $repository, ImageResizer $imageResizer, ServerRequestInterface $request): ResponseInterface
76+
private function handle(ObjectRepository $repository, ImageResizer $imageResizer, ServerRequestInterface $request): ResponseInterface
7877
{
79-
$action = new ImageAction($repository, $imageResizer);
80-
$handler = $this->createMock(RequestHandlerInterface::class);
78+
$handler = new ImageHandler($repository, $imageResizer);
8179

82-
return $action->process($request, $handler);
80+
return $handler->handle($request);
8381
}
8482

8583
private function createImageMock(): Image

0 commit comments

Comments
 (0)