main
Robert 4 months ago
parent 14524359d7
commit 19fdd5131c
  1. 14
      protected/src/classes/auth_middleware.php
  2. 44
      protected/src/classes/route_service_provider.php
  3. 31
      protected/src/controllers/app/protected_ctrl.php
  4. 5
      public/index.php

@ -12,13 +12,15 @@ namespace Project\classes;
use \CodeHydrater\http\request as Request; use \CodeHydrater\http\request as Request;
use \CodeHydrater\http\response as Response; use \CodeHydrater\http\response as Response;
class example_middleware { class auth_middleware {
public function __invoke(Request $request, Response $response, $next) { public function __invoke(Request $request, Response $response, $next) {
$response = $next($request, $response); // Example: check session or token
if (! isset($_SESSION['user_id'])) {
$response->set_status_code(403)->set_content("Forbidden: Authentication required.");
return $response;
}
// After controller return $next($request, $response);
$response->set_content($response->get_content() . "\n<!-- Served by ExampleMiddleware -->");
return $response;
} }
} }

@ -1,44 +0,0 @@
<?php
declare(strict_types = 1);
/**
* @author Robert Strutts <Bob_586@Yahoo.com>
* @copyright (c) 2025, Robert Strutts
* @license MIT
*/
namespace Project\classes;
use \CodeHydrater\http\service_provider as ServiceProvider;
use \CodeHydrater\http\kernel as Kernel;
use \CodeHydrater\http\request as Request;
use \CodeHydrater\http\response as Response;
use \CodeHydrater\router as Router;
use \CodeHydrater\app as App;
/**
* Description of route_service_provider
* Setup Router and Controllers
*
* @author Robert Strutts <Bob_586@Yahoo.com>
*/
class route_service_provider extends ServiceProvider {
protected Kernel $kernel;
public function __construct(Kernel $kernel) {
$this->kernel = $kernel;
}
public function register(): void {
// Add router middleware
$this->kernel->add_middleware(function (Request $request, Response $response, $next) {
$returned_route = Router::execute($request, $response);
if ($returned_route["found"] === false) {
$app = new App();
return $app->load_controller($request, $response);
} else {
return $returned_route['returned'];
}
});
}
}

@ -0,0 +1,31 @@
<?php
declare(strict_types = 1);
/**
* @author Robert Strutts <Bob_586@Yahoo.com>
* @copyright (c) 2025, Robert Strutts
* @license MIT
*/
namespace Project\controllers\app;
use \CodeHydrater\http\request as Request;
use \CodeHydrater\http\response as Response;
/**
* Description of protected_ctrl
*
* @author Robert Strutts <Bob_586@Yahoo.com>
*/
class protected_ctrl {
public static array $middleware = [
\Project\classes\auth_middleware::class
];
public function __construct(private Request $request, private Response $response) { }
public function index(): Response {
$this->response->set_content("Coool!");
return $this->response;
}
}

@ -27,10 +27,7 @@ function dd($var = 'nothing', $end = true) {
$kernel = new \CodeHydrater\http\kernel(); $kernel = new \CodeHydrater\http\kernel();
// Register service providers // Register service providers
$kernel->register_service_provider(Project\classes\route_service_provider::class); $kernel->register_service_provider(CodeHydrater\http\route_service_provider::class);
// Register global middleware
//$kernel->add_middleware(Project\classes\example_middleware::class);
// Run // Run
$kernel->run(); $kernel->run();
Loading…
Cancel
Save