You've already forked Php-Template
All checks were successful
🧪✨ Tests Workflow / 🛡️ 🔒 Library Audit (push) Successful in 1m37s
🧪✨ Tests Workflow / 📝 ✨ Code Lint (push) Successful in 1m32s
🧪✨ Tests Workflow / 🧪 ✨ Database Migrations (push) Successful in 1m54s
🧪✨ Tests Workflow / 🛡️ 🔒 License Check (push) Successful in 1m46s
🧪✨ Tests Workflow / 🐙 🔍 Code Sniffer (push) Successful in 1m49s
🧪✨ Tests Workflow / 🧪 ✅ Unit Tests (push) Successful in 1m18s
Reviewed-on: #12 Co-authored-by: Ron Rise <ron@siteworxpro.com> Co-committed-by: Ron Rise <ron@siteworxpro.com>
42 lines
1.1 KiB
PHP
42 lines
1.1 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Siteworxpro\App\Http\Middleware;
|
|
|
|
use League\Route\Dispatcher;
|
|
use League\Route\Route;
|
|
use Psr\Http\Server\MiddlewareInterface;
|
|
use Psr\Http\Server\RequestHandlerInterface;
|
|
|
|
abstract class Middleware implements MiddlewareInterface
|
|
{
|
|
|
|
protected function extractRouteCallable($request, RequestHandlerInterface | Dispatcher $handler): array|null
|
|
{
|
|
if (!$handler instanceof Dispatcher) {
|
|
return null;
|
|
}
|
|
|
|
/** @var Route | null $lastSegment */
|
|
$lastSegment = array_last($handler->getMiddlewareStack());
|
|
|
|
if ($lastSegment === null) {
|
|
return null;
|
|
}
|
|
|
|
$callable = $lastSegment->getCallable();
|
|
$class = null;
|
|
$method = null;
|
|
|
|
if (is_array($callable) && count($callable) === 2) {
|
|
[$class, $method] = $callable;
|
|
} elseif (is_string($callable)) {
|
|
// Handle the case where the callable is a string (e.g., 'ClassName::methodName')
|
|
[$class, $method] = explode('::', $callable);
|
|
}
|
|
|
|
return [$class, $method];
|
|
}
|
|
}
|