سلام چرا از کلاس ریکوئست بصورت گلوبال استفاده کردیم دسترسی بصورت گلوبال دیپندسی ایجاد نمیکنه درون متد هامون؟ خب ما که یک آبجکت از ریکوست تو کنستراکتور روتر داریم میتونیم مقادیرمون رو بصورت مستقیم به ریکوست پاس بدیم و تو کنترلر هم مستقیم به مقادیر دسترسی داشته باشیم
تو کلاس ریکوئستم میشه از مجیک متد __set برای مقدار دهیمون استفاده کنیم
public function regexMatched($route){
$pattern="/^".str_replace(['/','{','}'],['\/','(?<','>[-%\w]+)'],$route['uri'])."$/";
$result=preg_match($pattern,$this->request->uri(),$matches);
if(!$result){
return false;
}
foreach ($matches as $key=>$value){
if(!is_int($key)){
$this->request->$key=$value;
}
}
return true;
}
دسترسی به مقادیر درون کلاس کنترولر ما
namespace App\Controllers;
use App\Core\Request;
class PostController{
private $request;
public function __construct(){
$this->request = new Request();
}
public function single() {
nice_dump($this->request->slug);
nice_dump($this->request->cid);
}
}