0

我已經建立了一個正常的Zend應用程序,除了我的情況不同之處在於,我將它設置爲而不是現有的舊式Web應用程序。如何解決錯誤「無法調度中間件應用程序中間件 IndexMiddleware」?

我還想通過ZF3應用程序調用我現有的遺留應用程序。有人建議我可以使用中間件來做到這一點。我去了https://docs.zendframework.com/zend-mvc/middleware/並設置我的路由如上所述。

然而,當我運行應用程序,我迎接這樣的:

Cannot dispatch middleware Application\Middleware\IndexMiddleware 

#0 zend-mvc\src\MiddlewareListener.php(146): 
Zend\Mvc\Exception\InvalidMiddlewareException::fromMiddlewareName('Application\\Mid...') 

這裏就是發生異常: https://github.com/zendframework/zend-mvc/blob/release-3.1.0/src/MiddlewareListener.php#L146

只是要注意:

$middlewareToBePiped; //'Application\Middleware\IndexMiddleware' 
is_string($middlewareToBePiped); // true 
$serviceLocator->has($middlewareToBePiped);//false 
$middlewareToBePiped instanceof MiddlewareInterface; //false 
is_callable($middlewareToBePiped);//false 

我類是:

namespace Application\Middleware; 

use Psr\Http\Message\ResponseInterface; 
use Psr\Http\Message\ServerRequestInterface; 
use Interop\Http\ServerMiddleware\MiddlewareInterface; 
use Interop\Http\ServerMiddleware\DelegateInterface; 
use Zend\Http\Response; 

class IndexMiddleware implements MiddlewareInterface 
{ 

    public function __invoke(ServerRequestInterface $request, ResponseInterface $response) 
    {} 

    public function process(ServerRequestInterface $request, DelegateInterface $delegate) 
    {} 
} 

我在想,我的問題是我的IndexMiddleware類沒有在ServiceLocator中找到...(鏈接API的142行)。我如何獲得它?

回答

0

我要把它放到我的application.config.php文件:(執行沒有返回響應最後中間件)

'service_manager' => [ 
    'invokables' => array(
     'middleware' => IndexMiddleware::class 
    ) 
] 

到下一個錯誤是.. 但看起來像它已執行)

相關問題