سلام و احترام
کاری که من انجام دادم رو ممنون میشم بررسی کنید و ببنید آیا درست هستش
در متود add و با استفاده از تابع array_merge میدل ور گلوبال داده شده که اگه true یا false بشه فعال و غیر فعال میشه در تمامی پروژه
public static function add( $method, $uri, $action, $middleware = [])
{
$newMidlleware = array_merge($middleware , ['middlewareGlobal'=> true]);
$method = is_array( $method ) ? $method : [$method];
self::$routes [] = [
'method' => $method,
'uri' => $uri,
'action' => $action,
'middleware' => $newMidlleware
];
}
و شرطی که در Route قرار داده میشه
public function run()
{
if($this->courentRoute['middleware']['middlewareGlobal'] === true){
die('echo 123'); //add your middleware
}
foreach($this->courentRoute['middleware'] as $middleware){
if(class_exists($middleware)){
$salam = new $middleware;
$salam->handle();
}
}
if(!$this->invalidRequest($this->request)){
$this->dispatch405();
}
if(is_null($this->courentRoute)){
$this->dispatch404();
}
if(is_null($this->courentRoute['action']) && empty($this->courentRoute['action']) ){
return;
}
$this->dispatch();
}