سلام ,
از آموزش عالی استاد لقمان متشکرم.
برای متدهای روت که تا این مرحله که با استاد پیش رفتیم , گفتم بد نیست که متدهای روتمون رو داینامیک کنیم.
در اینجا کدش رو میزارم :
<?php
namespace App\Core\Route;
class Route
{
private static $routes = [];
public static function add($method, string $uri, $action = null)
{
$methods = is_array($method) ? $method : [$method];
self::$routes[] = [
'methods' => $methods,
'uri' => $uri,
'action' => $action
];
}
public static function __callStatic($name, $arguments)
{
$uri = $arguments[0];
$action = $arguments ['1'];
self::add($name, $uri, $action);
}
/*
public static function get(string $uri,$action)
{
self::add('get',$uri,$action);
}
*/
public static function routes()
{
return self::$routes;
}
}
تمامی متدهای get, post , put , patch , delete ساپورت خواهند شد.
مشکل این روش این هست که هر کسی هر اسمی برای متد استاتیک بزاره اجرا خواهد شد , در حالی که نباید اینطور باشه ..
این کلاس باید طوری طراحی بشه که فقط از 5 متد منتخب http بشه استفاده کرد.
اگر راه حلی به ذهنتون میرسه , خیلی خوشحال میشم که در اینجا مطرح کنید.