سلام به همه دوستان
در ویدیو بخش utilitiesها یک تمرین داده شد که چطور بدون تعریف utilitiesهای js, css, image و...
بتونیم این مورد رو هندل کنیم
برای اینکار باید از magic method ی به اسم __callstatic استفاده کنیم.
زمانی که یک متد که وجود نداره رو بصورت استاتیک صدا کنیم؛ این مجیک متد صدا زده میشه
مثلا در مثال زیر؛ متدی به اسم js نداریم ولی باز هم میشه صداش زد
البته این کد بصورت defensive نوشته نشده و هدف؛ صرفا نشون دادن نحوه کار با magic method هستش
class Assets {
public static function __callStatic($name, $arguments)
{
if($name != "get"){
return $_ENV['HOST'] . "assets/{$name}/" . $arguments[0];
}
return $_ENV['HOST'] . "assets/" . $arguments[0];
}
}
$obj = new Assets();
echo $obj::js("style.css");