【发布时间】:2017-10-26 14:05:37
【问题描述】:
我正在尝试破译如何在最新版本的 zend-mvc 下正确混合 ZF3 中间件之间的变量。
想象一下这样的路线:
'sandwich-test' => [
'type' => \Zend\Router\Http\Literal::class,
'options' => [
'route' => '/events/sandwich',
'defaults' => [
'middleware' => [
\Foo\Middleware\JsonWrappingMiddleware::class,
\Foo\Middleware\TestMiddleware::class,
],
],
],
],
在我的简单测试中,我希望 JsonWrappingMiddleware 在 JsonResponse 中简单地返回 TestMiddleware 返回的变量。
就个人而言,这是可行的:
use Interop\Http\ServerMiddleware\DelegateInterface;
use Interop\Http\ServerMiddleware\MiddlewareInterface;
use Psr\Http\Message\ServerRequestInterface;
use Zend\Diactoros\Response\JsonResponse;
class JsonWrappingMiddleware implements MiddlewareInterface
{
public function process(ServerRequestInterface $request, DelegateInterface $delegate)
{
return new JsonResponse(['c' => 'd']);
}
}
...和...
use Interop\Http\ServerMiddleware\DelegateInterface;
use Interop\Http\ServerMiddleware\MiddlewareInterface;
use Psr\Http\Message\ServerRequestInterface;
use Zend\Diactoros\Response\JsonResponse;
class TestMiddleware implements MiddlewareInterface
{
public function process(ServerRequestInterface $request, DelegateInterface $delegate)
{
return new JsonResponse(['a' => 'b']);
}
}
但是接下来,如何让它们协同工作返回
[ 'a' => 'b', 'c' => 'd', ]
【问题讨论】:
-
你知道如何让中间件协同工作吗?
标签: zend-framework3 zend-framework-mvc mezzio