2017-05-25 5 views
0

最新リリースのzend-mvcで、ZF3ミドルウェア間で変数を適切にブレンドする方法を解読しようとしています。 JsonWrappingMiddlewareは、単に、JsonResponseにTestMiddlewareによって返された変数を返すようにするために私が欲しい、私の簡単なテストでzend-mvcを使用したミドルウェア間の変数の受け渡し

'sandwich-test' => [ 
    'type' => \Zend\Router\Http\Literal::class, 
    'options' => [ 
     'route' => '/events/sandwich', 
     'defaults' => [ 
      'middleware' => [ 
       \Foo\Middleware\JsonWrappingMiddleware::class, 
       \Foo\Middleware\TestMiddleware::class, 
      ], 
     ], 
    ], 
], 

は、このようなルートを想像してみてください。個別

、これは動作します。その後、

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', ] 

答えて

0

を返すために一緒に働くようにする方法レスポンスを2回送信します。ミドルウェアに一部のデータを渡したい場合は0を使用します、次に2番目(または単に最後)のミドルウェアがそのデータを取得し、それを適切なものに変換します。JsonResponse

+0

こんにちは。私は帰国の概念を理解していますが、希望の結果を得るためにこれらの2つをどのように組み合わせるかはわかりません。コードサンプルは時間があれば素晴らしいでしょう。 – Saeven

関連する問題