@@ -6893,17 +6893,6 @@ public function __construct(Router $router, Responder $responder, array $propert
6893
6893
$ this ->properties = $ properties ;
6894
6894
}
6895
6895
6896
- /**
6897
- * allows to load middlewares in a specific order
6898
- * The higher the priority, the earlier the middleware will be called
6899
- *
6900
- * @return int
6901
- */
6902
- public function getPriority () /* : int */
6903
- {
6904
- return 1 ;
6905
- }
6906
-
6907
6896
protected function getArrayProperty (string $ key , string $ default ): array
6908
6897
{
6909
6898
return array_filter (array_map ('trim ' , explode (', ' , $ this ->getProperty ($ key , $ default ))));
@@ -7068,10 +7057,6 @@ public function route(ServerRequestInterface $request): ResponseInterface
7068
7057
$ this ->cache ->set ('PathTree ' , $ data , $ this ->ttl );
7069
7058
}
7070
7059
7071
- uasort ($ this ->middlewares , function (Middleware $ a , Middleware $ b ) {
7072
- return $ a ->getPriority () > $ b ->getPriority () ? 1 : ($ a ->getPriority () === $ b ->getPriority () ? 0 : -1 );
7073
- });
7074
-
7075
7060
return $ this ->handle ($ request );
7076
7061
}
7077
7062
@@ -7392,7 +7377,7 @@ public function process(ServerRequestInterface $request, RequestHandlerInterface
7392
7377
}
7393
7378
}
7394
7379
7395
- // file: src/Tqdev/PhpCrudApi/Middleware/CatchErrorsMiddleware .php
7380
+ // file: src/Tqdev/PhpCrudApi/Middleware/CorsMiddleware .php
7396
7381
namespace Tqdev \PhpCrudApi \Middleware {
7397
7382
7398
7383
use Psr \Http \Message \ResponseInterface ;
@@ -7402,9 +7387,10 @@ public function process(ServerRequestInterface $request, RequestHandlerInterface
7402
7387
use Tqdev \PhpCrudApi \Middleware \Base \Middleware ;
7403
7388
use Tqdev \PhpCrudApi \Middleware \Router \Router ;
7404
7389
use Tqdev \PhpCrudApi \Record \ErrorCode ;
7390
+ use Tqdev \PhpCrudApi \ResponseFactory ;
7405
7391
use Tqdev \PhpCrudApi \ResponseUtils ;
7406
7392
7407
- class CatchErrorsMiddleware extends Middleware
7393
+ class CorsMiddleware extends Middleware
7408
7394
{
7409
7395
private $ debug ;
7410
7396
@@ -7414,45 +7400,6 @@ public function __construct(Router $router, Responder $responder, array $propert
7414
7400
$ this ->debug = $ debug ;
7415
7401
}
7416
7402
7417
- public function process (ServerRequestInterface $ request , RequestHandlerInterface $ next ): ResponseInterface
7418
- {
7419
- $ response = null ;
7420
- try {
7421
- $ response = $ next ->handle ($ request );
7422
- } catch (\Throwable $ e ) {
7423
- $ response = $ this ->responder ->error (ErrorCode::ERROR_NOT_FOUND , $ e ->getMessage ());
7424
- if ($ this ->debug ) {
7425
- $ response = ResponseUtils::addExceptionHeaders ($ response , $ e );
7426
- }
7427
- }
7428
- return $ response ;
7429
- }
7430
-
7431
- /**
7432
- * High priority, should always be one of the very first middlewares to be loaded
7433
- * Only cors middleware should be loaded earlier
7434
- *
7435
- * @return int
7436
- */
7437
- public function getPriority ()
7438
- {
7439
- return 998 ;
7440
- }
7441
- }
7442
- }
7443
-
7444
- // file: src/Tqdev/PhpCrudApi/Middleware/CorsMiddleware.php
7445
- namespace Tqdev \PhpCrudApi \Middleware {
7446
-
7447
- use Psr \Http \Message \ResponseInterface ;
7448
- use Psr \Http \Message \ServerRequestInterface ;
7449
- use Psr \Http \Server \RequestHandlerInterface ;
7450
- use Tqdev \PhpCrudApi \Middleware \Base \Middleware ;
7451
- use Tqdev \PhpCrudApi \Record \ErrorCode ;
7452
- use Tqdev \PhpCrudApi \ResponseFactory ;
7453
-
7454
- class CorsMiddleware extends Middleware
7455
- {
7456
7403
private function isOriginAllowed (string $ origin , string $ allowedOrigins ): bool
7457
7404
{
7458
7405
$ found = false ;
@@ -7497,7 +7444,15 @@ public function process(ServerRequestInterface $request, RequestHandlerInterface
7497
7444
$ response = $ response ->withHeader ('Access-Control-Expose-Headers ' , $ exposeHeaders );
7498
7445
}
7499
7446
} else {
7500
- $ response = $ next ->handle ($ request );
7447
+ $ response = null ;
7448
+ try {
7449
+ $ response = $ next ->handle ($ request );
7450
+ } catch (\Throwable $ e ) {
7451
+ $ response = $ this ->responder ->error (ErrorCode::ERROR_NOT_FOUND , $ e ->getMessage ());
7452
+ if ($ this ->debug ) {
7453
+ $ response = ResponseUtils::addExceptionHeaders ($ response , $ e );
7454
+ }
7455
+ }
7501
7456
}
7502
7457
if ($ origin ) {
7503
7458
$ allowCredentials = $ this ->getProperty ('allowCredentials ' , 'true ' );
@@ -7508,16 +7463,6 @@ public function process(ServerRequestInterface $request, RequestHandlerInterface
7508
7463
}
7509
7464
return $ response ;
7510
7465
}
7511
-
7512
- /**
7513
- * load early in the routing stack. should be loaded before catc herrors middleware,
7514
- * otherwise cors headers will be missing
7515
- * @return int
7516
- */
7517
- public function getPriority ()
7518
- {
7519
- return 999 ;
7520
- }
7521
7466
}
7522
7467
}
7523
7468
@@ -10716,7 +10661,6 @@ private function setHabtmValues(ReflectedTable $t1, ReflectedTable $t2, array &$
10716
10661
use Tqdev \PhpCrudApi \GeoJson \GeoJsonService ;
10717
10662
use Tqdev \PhpCrudApi \Middleware \AuthorizationMiddleware ;
10718
10663
use Tqdev \PhpCrudApi \Middleware \BasicAuthMiddleware ;
10719
- use Tqdev \PhpCrudApi \Middleware \CatchErrorsMiddleware ;
10720
10664
use Tqdev \PhpCrudApi \Middleware \CorsMiddleware ;
10721
10665
use Tqdev \PhpCrudApi \Middleware \CustomizationMiddleware ;
10722
10666
use Tqdev \PhpCrudApi \Middleware \DbAuthMiddleware ;
@@ -10760,14 +10704,13 @@ public function __construct(Config $config)
10760
10704
$ reflection = new ReflectionService ($ db , $ cache , $ config ->getCacheTime ());
10761
10705
$ responder = new JsonResponder ();
10762
10706
$ router = new SimpleRouter ($ config ->getBasePath (), $ responder , $ cache , $ config ->getCacheTime (), $ config ->getDebug ());
10763
- new CatchErrorsMiddleware ($ router , $ responder , [], $ config ->getDebug ());
10764
10707
foreach ($ config ->getMiddlewares () as $ middleware => $ properties ) {
10765
10708
switch ($ middleware ) {
10766
10709
case 'sslRedirect ' :
10767
10710
new SslRedirectMiddleware ($ router , $ responder , $ properties );
10768
10711
break ;
10769
10712
case 'cors ' :
10770
- new CorsMiddleware ($ router , $ responder , $ properties );
10713
+ new CorsMiddleware ($ router , $ responder , $ properties, $ config -> getDebug () );
10771
10714
break ;
10772
10715
case 'firewall ' :
10773
10716
new FirewallMiddleware ($ router , $ responder , $ properties );
@@ -10814,9 +10757,6 @@ public function __construct(Config $config)
10814
10757
case 'xml ' :
10815
10758
new XmlMiddleware ($ router , $ responder , $ properties , $ reflection );
10816
10759
break ;
10817
- case 'errors ' :
10818
- new CatchErrorsMiddleware ($ router , $ responder , [], $ config ->getDebug ());
10819
- break ;
10820
10760
}
10821
10761
}
10822
10762
foreach ($ config ->getControllers () as $ controller ) {
0 commit comments