💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ amir tavakolian
جواب تمرین utilities
امیر صالحی حل شده توسط امیر صالحی

سلام به همه دوستان

در ویدیو بخش 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");

سلام و احترام

ممنون از پیگیریتون، سعی کنید جواب تمرین هارو توی قسمت پرسش و پاسخ قرار ندید تا بچه‌ها بتونن خودشون حل کنن مسائلو

بهترین پاسخ
امیر صالحی ۱۳ بهمن ۱۳۹۹، ۱۹:۵۴