99 * @author Arman Ag. <arman.ag@softberg.org>
1010 * @copyright Copyright (c) 2018 Softberg LLC (https://softberg.org)
1111 * @link http://quantum.softberg.org/
12- * @since 2.9.7
12+ * @since 2.9.9
1313 */
1414
1515namespace Quantum \Middleware ;
1616
17+ use Quantum \Middleware \Exceptions \MiddlewareException ;
1718use Quantum \Http \Response ;
1819use Quantum \Http \Request ;
1920
@@ -50,6 +51,7 @@ public function __construct()
5051 * @param Request $request
5152 * @param Response $response
5253 * @return array
54+ * @throws MiddlewareException
5355 */
5456 public function applyMiddlewares (Request $ request , Response $ response ): array
5557 {
@@ -72,16 +74,15 @@ public function applyMiddlewares(Request $request, Response $response): array
7274 * @param Request $request
7375 * @param Response $response
7476 * @return QtMiddleware
77+ * @throws MiddlewareException
7578 */
7679 private function getMiddleware (Request $ request , Response $ response ): QtMiddleware
7780 {
78- $ middlewareName = current ($ this ->middlewares );
81+ $ middlewareClass = module_base_namespace () . '\\' . $ this -> module . '\\ Middlewares \\' . current ($ this ->middlewares );
7982
80- $ middlewarePath = modules_dir () . DS . $ this ->module . DS . 'Middlewares ' . DS . $ middlewareName . '.php ' ;
81-
82- require_once $ middlewarePath ;
83-
84- $ middlewareClass = module_base_namespace () . '\\' . $ this ->module . '\\Middlewares \\' . $ middlewareName ;
83+ if (!class_exists ($ middlewareClass )) {
84+ throw MiddlewareException::middlewareNotFound ($ middlewareClass );
85+ }
8586
8687 return new $ middlewareClass ($ request , $ response );
8788 }
0 commit comments