* migrate to mezzio

This commit is contained in:
Danyi Dávid 2020-09-07 20:54:56 +02:00
parent d60f6c5d1b
commit 554b0b5d99
28 changed files with 3218 additions and 1800 deletions

View File

@ -23,13 +23,13 @@ https://sms-store.yvan.hu/store/received/:hashKey
``` ```
[![Build Status](https://secure.travis-ci.org/zendframework/zend-expressive-skeleton.svg?branch=master)](https://secure.travis-ci.org/zendframework/zend-expressive-skeleton) [![Build Status](https://secure.travis-ci.org/mezzio/mezzio-skeleton.svg?branch=master)](https://secure.travis-ci.org/mezzio/mezzio-skeleton)
[![Coverage Status](https://coveralls.io/repos/github/zendframework/zend-expressive-skeleton/badge.svg?branch=master)](https://coveralls.io/github/zendframework/zend-expressive-skeleton?branch=master) [![Coverage Status](https://coveralls.io/repos/github/mezzio/mezzio-skeleton/badge.svg?branch=master)](https://coveralls.io/github/mezzio/mezzio-skeleton?branch=master)
*Begin developing PSR-7 middleware applications in seconds!* *Begin developing PSR-7 middleware applications in seconds!*
[zend-expressive](https://github.com/zendframework/zend-expressive) builds on [zend-expressive](https://github.com/mezzio/mezzio) builds on
[zend-stratigility](https://github.com/zendframework/zend-stratigility) to [zend-stratigility](https://github.com/laminas/laminas-stratigility) to
provide a minimalist PSR-7 middleware framework for PHP with routing, DI provide a minimalist PSR-7 middleware framework for PHP with routing, DI
container, optional templating, and optional error handling capabilities. container, optional templating, and optional error handling capabilities.
@ -50,7 +50,7 @@ removed.
Start your new Expressive project with composer: Start your new Expressive project with composer:
```bash ```bash
$ composer create-project zendframework/zend-expressive-skeleton <project-path> $ composer create-project mezzio/mezzio-skeleton <project-path>
``` ```
After choosing and installing the packages you want, go to the After choosing and installing the packages you want, go to the
@ -95,7 +95,7 @@ If neither of the above help, you might face more serious issues:
## Application Development Mode Tool ## Application Development Mode Tool
This skeleton comes with [zf-development-mode](https://github.com/zfcampus/zf-development-mode). This skeleton comes with [laminas-development-mode](https://github.com/laminas/laminas-development-mode).
It provides a composer script to allow you to enable and disable development mode. It provides a composer script to allow you to enable and disable development mode.
### To enable development mode ### To enable development mode

View File

@ -4,9 +4,9 @@
* *
* Can also be invoked as `composer clear-config-cache`. * Can also be invoked as `composer clear-config-cache`.
* *
* @see https://github.com/zendframework/zend-expressive-skeleton for the canonical source repository * @see https://github.com/mezzio/mezzio-skeleton for the canonical source repository
* @copyright Copyright (c) 2017 Zend Technologies USA Inc. (http://www.zend.com) * @copyright Copyright (c) 2017 Zend Technologies USA Inc. (http://www.zend.com)
* @license https://github.com/zendframework/zend-expressive-skeleton/blob/master/LICENSE.md New BSD License * @license https://github.com/mezzio/mezzio-skeleton/blob/master/LICENSE.md New BSD License
*/ */
chdir(__DIR__ . '/../'); chdir(__DIR__ . '/../');

View File

@ -1,8 +1,8 @@
{ {
"name": "zendframework/zend-expressive-skeleton", "name": "mezzio/mezzio-skeleton",
"description": "Zend expressive skeleton. Begin developing PSR-7 middleware applications in seconds!", "description": "Zend expressive skeleton. Begin developing PSR-7 middleware applications in seconds!",
"type": "project", "type": "project",
"homepage": "https://github.com/zendframework/zend-expressive-skeleton", "homepage": "https://github.com/mezzio/mezzio-skeleton",
"license": "BSD-3-Clause", "license": "BSD-3-Clause",
"config": { "config": {
"sort-packages": true "sort-packages": true
@ -15,27 +15,28 @@
"guzzlehttp/guzzle": "^6.3", "guzzlehttp/guzzle": "^6.3",
"los/loslog": "^3.1", "los/loslog": "^3.1",
"roave/security-advisories": "dev-master", "roave/security-advisories": "dev-master",
"zendframework/zend-component-installer": "^2.1.1", "laminas/laminas-component-installer": "^2.1.1",
"zendframework/zend-config-aggregator": "^1.0", "laminas/laminas-config-aggregator": "^1.0",
"zendframework/zend-eventmanager": "^3.2", "laminas/laminas-eventmanager": "^3.2",
"zendframework/zend-expressive": "^3.0.1", "mezzio/mezzio": "^3.0.1",
"zendframework/zend-expressive-fastroute": "^3.0", "mezzio/mezzio-fastroute": "^3.0",
"zendframework/zend-expressive-helpers": "^5.0", "mezzio/mezzio-helpers": "^5.0",
"zendframework/zend-http": "^2.7", "laminas/laminas-http": "^2.7",
"zendframework/zend-json": "^3.1", "laminas/laminas-json": "^3.1",
"zendframework/zend-servicemanager": "^3.3", "laminas/laminas-servicemanager": "^3.3",
"zendframework/zend-stdlib": "^3.1", "laminas/laminas-stdlib": "^3.1",
"ext-openssl": "*", "ext-openssl": "*",
"ext-dom": "*", "ext-dom": "*",
"ext-libxml": "*", "ext-libxml": "*",
"ext-json": "*" "ext-json": "*",
"laminas/laminas-dependency-plugin": "^1.0"
}, },
"require-dev": { "require-dev": {
"filp/whoops": "^2.1.7", "filp/whoops": "^2.1.7",
"phan/phan": "^1.0", "phan/phan": "^1.0",
"phpunit/phpunit": "^6.0.8 || ^5.7.15", "phpunit/phpunit": "^6.0.8 || ^5.7.15",
"squizlabs/php_codesniffer": "^2.8.1", "squizlabs/php_codesniffer": "^2.8.1",
"zfcampus/zf-development-mode": "^3.1" "laminas/laminas-development-mode": "^3.1"
}, },
"autoload": { "autoload": {
"psr-4": { "psr-4": {
@ -51,9 +52,9 @@
"post-create-project-cmd": [ "post-create-project-cmd": [
"@development-enable" "@development-enable"
], ],
"development-disable": "zf-development-mode disable", "development-disable": "laminas-development-mode disable",
"development-enable": "zf-development-mode enable", "development-enable": "laminas-development-mode enable",
"development-status": "zf-development-mode status", "development-status": "laminas-development-mode status",
"check": [ "check": [
"@cs-check", "@cs-check",
"@test" "@test"

4829
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -1,10 +1,10 @@
<?php <?php
use Zend\Expressive\Application; use Mezzio\Application;
use Zend\Expressive\Container; use Mezzio\Container;
use Zend\Expressive\Delegate; use Mezzio\Delegate;
use Zend\Expressive\Helper; use Mezzio\Helper;
use Zend\Expressive\Middleware; use Mezzio\Middleware;
return [ return [
// Provides application-wide services. // Provides application-wide services.
@ -14,7 +14,7 @@ return [
// Use 'aliases' to alias a service name to another service. The // Use 'aliases' to alias a service name to another service. The
// key is the alias name, the value is the service to which it points. // key is the alias name, the value is the service to which it points.
'aliases' => [ 'aliases' => [
'Zend\Expressive\Delegate\DefaultDelegate' => Delegate\NotFoundDelegate::class, 'Mezzio\Delegate\DefaultDelegate' => Delegate\NotFoundDelegate::class,
], ],
// Use 'invokables' for constructor-less services, or services that do // Use 'invokables' for constructor-less services, or services that do
// not require arguments to the constructor. Map a service name to the // not require arguments to the constructor. Map a service name to the
@ -31,7 +31,7 @@ return [
Helper\UrlHelper::class => Helper\UrlHelperFactory::class, Helper\UrlHelper::class => Helper\UrlHelperFactory::class,
Helper\UrlHelperMiddleware::class => Helper\UrlHelperMiddlewareFactory::class, Helper\UrlHelperMiddleware::class => Helper\UrlHelperMiddlewareFactory::class,
Zend\Stratigility\Middleware\ErrorHandler::class => Container\ErrorHandlerFactory::class, Laminas\Stratigility\Middleware\ErrorHandler::class => Container\ErrorHandlerFactory::class,
Middleware\ErrorResponseGenerator::class => Container\ErrorResponseGeneratorFactory::class, Middleware\ErrorResponseGenerator::class => Container\ErrorResponseGeneratorFactory::class,
Middleware\NotFoundHandler::class => Container\NotFoundHandlerFactory::class, Middleware\NotFoundHandler::class => Container\NotFoundHandlerFactory::class,

View File

@ -10,8 +10,8 @@
* `composer development-enable`. * `composer development-enable`.
*/ */
use Zend\Expressive\Container; use Mezzio\Container;
use Zend\Expressive\Middleware\ErrorResponseGenerator; use Mezzio\Middleware\ErrorResponseGenerator;
return [ return [
'dependencies' => [ 'dependencies' => [
@ -19,8 +19,8 @@ return [
], ],
'factories' => [ 'factories' => [
ErrorResponseGenerator::class => Container\WhoopsErrorResponseGeneratorFactory::class, ErrorResponseGenerator::class => Container\WhoopsErrorResponseGeneratorFactory::class,
'Zend\Expressive\Whoops' => Container\WhoopsFactory::class, 'Mezzio\Whoops' => Container\WhoopsFactory::class,
'Zend\Expressive\WhoopsPageHandler' => Container\WhoopsPageHandlerFactory::class, 'Mezzio\WhoopsPageHandler' => Container\WhoopsPageHandlerFactory::class,
], ],
], ],

View File

@ -2,7 +2,7 @@
declare(strict_types=1); declare(strict_types=1);
use Zend\Stratigility\Middleware\ErrorHandler; use Laminas\Stratigility\Middleware\ErrorHandler;
return [ return [
'dependencies' => [ 'dependencies' => [

View File

@ -1,6 +1,6 @@
<?php <?php
use Zend\ConfigAggregator\ConfigAggregator; use Laminas\ConfigAggregator\ConfigAggregator;
return [ return [
// Toggle the configuration cache. Set this to boolean false, or remove the // Toggle the configuration cache. Set this to boolean false, or remove the
@ -12,7 +12,7 @@ return [
// Enable debugging; typically used to provide debugging information within templates. // Enable debugging; typically used to provide debugging information within templates.
'debug' => false, 'debug' => false,
'zend-expressive' => [ 'mezzio' => [
// Enable programmatic pipeline: Any `middleware_pipeline` or `routes` // Enable programmatic pipeline: Any `middleware_pipeline` or `routes`
// configuration will be ignored when creating the `Application` instance. // configuration will be ignored when creating the `Application` instance.
'programmatic_pipeline' => true, 'programmatic_pipeline' => true,

View File

@ -1,7 +1,7 @@
<?php <?php
use Zend\Expressive\Router\FastRouteRouter; use Mezzio\Router\FastRouteRouter;
use Zend\Expressive\Router\RouterInterface; use Mezzio\Router\RouterInterface;
return [ return [
'dependencies' => [ 'dependencies' => [

View File

@ -2,9 +2,9 @@
declare(strict_types=1); declare(strict_types=1);
use Zend\ConfigAggregator\ArrayProvider; use Laminas\ConfigAggregator\ArrayProvider;
use Zend\ConfigAggregator\ConfigAggregator; use Laminas\ConfigAggregator\ConfigAggregator;
use Zend\ConfigAggregator\PhpFileProvider; use Laminas\ConfigAggregator\PhpFileProvider;
// To enable or disable caching, set the `ConfigAggregator::ENABLE_CACHE` boolean in // To enable or disable caching, set the `ConfigAggregator::ENABLE_CACHE` boolean in
// `config/autoload/local.php`. // `config/autoload/local.php`.
@ -13,15 +13,17 @@ $cacheConfig = [
]; ];
$aggregator = new ConfigAggregator([ $aggregator = new ConfigAggregator([
\Zend\Log\ConfigProvider::class, \Mezzio\Router\FastRouteRouter\ConfigProvider::class,
\Zend\HttpHandlerRunner\ConfigProvider::class, \Laminas\Diactoros\ConfigProvider::class,
\Zend\Validator\ConfigProvider::class, \Laminas\Log\ConfigProvider::class,
\Laminas\HttpHandlerRunner\ConfigProvider::class,
\Laminas\Validator\ConfigProvider::class,
// Include cache configuration // Include cache configuration
new ArrayProvider($cacheConfig), new ArrayProvider($cacheConfig),
\Zend\Expressive\Helper\ConfigProvider::class, \Mezzio\Helper\ConfigProvider::class,
\Zend\Expressive\ConfigProvider::class, \Mezzio\ConfigProvider::class,
\Zend\Expressive\Router\ConfigProvider::class, \Mezzio\Router\ConfigProvider::class,
// Default App module config // Default App module config
App\ConfigProvider::class, App\ConfigProvider::class,
@ -36,6 +38,6 @@ $aggregator = new ConfigAggregator([
// Load development config if it exists // Load development config if it exists
new PhpFileProvider('config/development.config.php'), new PhpFileProvider('config/development.config.php'),
], $cacheConfig['config_cache_path']); ], $cacheConfig['config_cache_path'], [\Laminas\ZendFrameworkBridge\ConfigPostProcessor::class]);
return $aggregator->getMergedConfig(); return $aggregator->getMergedConfig();

View File

@ -2,7 +2,7 @@
declare(strict_types=1); declare(strict_types=1);
use Zend\ServiceManager\ServiceManager; use Laminas\ServiceManager\ServiceManager;
// Load configuration // Load configuration
$config = require __DIR__ . '/config.php'; $config = require __DIR__ . '/config.php';

View File

@ -2,7 +2,7 @@
/** /**
* File required to allow enablement of development mode. * File required to allow enablement of development mode.
* *
* For use with the zf-development-mode tool. * For use with the laminas-development-mode tool.
* *
* Usage: * Usage:
* $ composer development-disable * $ composer development-disable
@ -22,7 +22,7 @@
declare(strict_types=1); declare(strict_types=1);
use Zend\ConfigAggregator\ConfigAggregator; use Laminas\ConfigAggregator\ConfigAggregator;
return [ return [
'debug' => true, 'debug' => true,

View File

@ -3,17 +3,17 @@
declare(strict_types=1); declare(strict_types=1);
use Psr\Container\ContainerInterface; use Psr\Container\ContainerInterface;
use Zend\Expressive\Application; use Mezzio\Application;
use Zend\Expressive\Handler\NotFoundHandler; use Mezzio\Handler\NotFoundHandler;
use Zend\Expressive\Helper\ServerUrlMiddleware; use Mezzio\Helper\ServerUrlMiddleware;
use Zend\Expressive\Helper\UrlHelperMiddleware; use Mezzio\Helper\UrlHelperMiddleware;
use Zend\Expressive\MiddlewareFactory; use Mezzio\MiddlewareFactory;
use Zend\Expressive\Router\Middleware\DispatchMiddleware; use Mezzio\Router\Middleware\DispatchMiddleware;
use Zend\Expressive\Router\Middleware\ImplicitHeadMiddleware; use Mezzio\Router\Middleware\ImplicitHeadMiddleware;
use Zend\Expressive\Router\Middleware\ImplicitOptionsMiddleware; use Mezzio\Router\Middleware\ImplicitOptionsMiddleware;
use Zend\Expressive\Router\Middleware\MethodNotAllowedMiddleware; use Mezzio\Router\Middleware\MethodNotAllowedMiddleware;
use Zend\Expressive\Router\Middleware\RouteMiddleware; use Mezzio\Router\Middleware\RouteMiddleware;
use Zend\Stratigility\Middleware\ErrorHandler; use Laminas\Stratigility\Middleware\ErrorHandler;
/** /**
* Setup middleware pipeline: * Setup middleware pipeline:
@ -45,7 +45,7 @@ return function (Application $app, MiddlewareFactory $factory, ContainerInterfac
// - $app->pipe('/files', $filesMiddleware); // - $app->pipe('/files', $filesMiddleware);
// Register the routing middleware in the middleware pipeline. // Register the routing middleware in the middleware pipeline.
// This middleware registers the Zend\Expressive\Router\RouteResult request attribute. // This middleware registers the Mezzio\Router\RouteResult request attribute.
$app->pipe(RouteMiddleware::class); $app->pipe(RouteMiddleware::class);
// The following handle routing failures for common conditions: // The following handle routing failures for common conditions:

View File

@ -3,8 +3,8 @@
declare(strict_types=1); declare(strict_types=1);
use Psr\Container\ContainerInterface; use Psr\Container\ContainerInterface;
use Zend\Expressive\Application; use Mezzio\Application;
use Zend\Expressive\MiddlewareFactory; use Mezzio\MiddlewareFactory;
/** /**
* Setup routes with a single request method: * Setup routes with a single request method:
@ -28,7 +28,7 @@ use Zend\Expressive\MiddlewareFactory;
* $app->route( * $app->route(
* '/contact', * '/contact',
* App\Handler\ContactHandler::class, * App\Handler\ContactHandler::class,
* Zend\Expressive\Router\Route::HTTP_METHOD_ANY, * Mezzio\Router\Route::HTTP_METHOD_ANY,
* 'contact' * 'contact'
* ); * );
*/ */

View File

@ -17,9 +17,9 @@ require 'vendor/autoload.php';
/** @var \Psr\Container\ContainerInterface $container */ /** @var \Psr\Container\ContainerInterface $container */
$container = require 'config/container.php'; $container = require 'config/container.php';
/** @var \Zend\Expressive\Application $app */ /** @var \Mezzio\Application $app */
$app = $container->get(\Zend\Expressive\Application::class); $app = $container->get(\Mezzio\Application::class);
$factory = $container->get(\Zend\Expressive\MiddlewareFactory::class); $factory = $container->get(\Mezzio\MiddlewareFactory::class);
// Execute programmatic/declarative middleware pipeline and routing // Execute programmatic/declarative middleware pipeline and routing
// configuration statements // configuration statements

View File

@ -7,8 +7,8 @@ namespace App\Action;
use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface; use Psr\Http\Server\RequestHandlerInterface;
use Zend\Diactoros\Response\JsonResponse; use Laminas\Diactoros\Response\JsonResponse;
use Zend\Json\Json; use Laminas\Json\Json;
abstract class AbstractAction implements RequestHandlerInterface abstract class AbstractAction implements RequestHandlerInterface
{ {

View File

@ -8,7 +8,7 @@ use App\Service\KoinService;
use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface; use Psr\Http\Server\RequestHandlerInterface;
use Zend\Diactoros\Response\TextResponse; use Laminas\Diactoros\Response\TextResponse;
class HomePageAction implements RequestHandlerInterface class HomePageAction implements RequestHandlerInterface
{ {

View File

@ -6,7 +6,7 @@ namespace App\Action;
use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ResponseInterface;
use Psr\Http\Server\RequestHandlerInterface; use Psr\Http\Server\RequestHandlerInterface;
use Zend\Diactoros\Response\JsonResponse; use Laminas\Diactoros\Response\JsonResponse;
use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Message\ServerRequestInterface;
class PingAction implements RequestHandlerInterface class PingAction implements RequestHandlerInterface

View File

@ -4,7 +4,7 @@ declare(strict_types=1);
namespace App; namespace App;
use Zend\EventManager\EventManager; use Laminas\EventManager\EventManager;
/** /**
* The configuration provider for the App module * The configuration provider for the App module

View File

@ -6,8 +6,8 @@ namespace App\Log;
use Interop\Container\ContainerInterface; use Interop\Container\ContainerInterface;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;
use Zend\ServiceManager\Factory\DelegatorFactoryInterface; use Laminas\ServiceManager\Factory\DelegatorFactoryInterface;
use Zend\Stratigility\Middleware\ErrorHandler; use Laminas\Stratigility\Middleware\ErrorHandler;
class ExceptionHandlerListenerDelegatorFactory implements DelegatorFactoryInterface class ExceptionHandlerListenerDelegatorFactory implements DelegatorFactoryInterface
{ {

View File

@ -6,8 +6,8 @@ namespace App\Middleware;
use App\Service\KoinService; use App\Service\KoinService;
use Interop\Container\ContainerInterface; use Interop\Container\ContainerInterface;
use Zend\EventManager\EventManager; use Laminas\EventManager\EventManager;
use Zend\EventManager\LazyListener; use Laminas\EventManager\LazyListener;
class EventSubscriberMiddlewareFactory class EventSubscriberMiddlewareFactory
{ {

View File

@ -4,7 +4,7 @@ declare(strict_types=1);
namespace App\Response; namespace App\Response;
use Zend\Diactoros\Response\JsonResponse; use Laminas\Diactoros\Response\JsonResponse;
class JsonCorsResponse extends JsonResponse class JsonCorsResponse extends JsonResponse
{ {

View File

@ -10,8 +10,8 @@ use Doctrine\ORM\OptimisticLockException;
use Doctrine\ORM\ORMException; use Doctrine\ORM\ORMException;
use GuzzleHttp\Client; use GuzzleHttp\Client;
use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ResponseInterface;
use Zend\EventManager\Event; use Laminas\EventManager\Event;
use Zend\Json\Json; use Laminas\Json\Json;
class KoinService class KoinService
{ {

View File

@ -11,7 +11,7 @@ use Doctrine\ORM\EntityManager;
use Doctrine\ORM\OptimisticLockException; use Doctrine\ORM\OptimisticLockException;
use Doctrine\ORM\ORMException; use Doctrine\ORM\ORMException;
use Exception; use Exception;
use Zend\EventManager\EventManager; use Laminas\EventManager\EventManager;
class SmsStoreService class SmsStoreService
{ {

View File

@ -5,7 +5,7 @@ declare(strict_types=1);
namespace App\Service; namespace App\Service;
use Interop\Container\ContainerInterface; use Interop\Container\ContainerInterface;
use Zend\EventManager\EventManager; use Laminas\EventManager\EventManager;
class SmsStoreServiceFactory class SmsStoreServiceFactory
{ {

View File

@ -7,10 +7,10 @@ use Interop\Http\ServerMiddleware\DelegateInterface;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;
use Prophecy\Argument; use Prophecy\Argument;
use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Message\ServerRequestInterface;
use Zend\Diactoros\Response\HtmlResponse; use Laminas\Diactoros\Response\HtmlResponse;
use Zend\Diactoros\Response\JsonResponse; use Laminas\Diactoros\Response\JsonResponse;
use Zend\Expressive\Router\RouterInterface; use Mezzio\Router\RouterInterface;
use Zend\Expressive\Template\TemplateRendererInterface; use Mezzio\Template\TemplateRendererInterface;
class HomePageActionTest extends TestCase class HomePageActionTest extends TestCase
{ {

View File

@ -6,8 +6,8 @@ use App\Action\HomePageAction;
use App\Action\HomePageFactory; use App\Action\HomePageFactory;
use Interop\Container\ContainerInterface; use Interop\Container\ContainerInterface;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;
use Zend\Expressive\Router\RouterInterface; use Mezzio\Router\RouterInterface;
use Zend\Expressive\Template\TemplateRendererInterface; use Mezzio\Template\TemplateRendererInterface;
class HomePageFactoryTest extends TestCase class HomePageFactoryTest extends TestCase
{ {

View File

@ -6,7 +6,7 @@ use App\Action\PingAction;
use Interop\Http\ServerMiddleware\DelegateInterface; use Interop\Http\ServerMiddleware\DelegateInterface;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;
use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Message\ServerRequestInterface;
use Zend\Diactoros\Response\JsonResponse; use Laminas\Diactoros\Response\JsonResponse;
class PingActionTest extends TestCase class PingActionTest extends TestCase
{ {