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

استاد سلام 

استاد من کلاس زیر رو برای autoload کردن بر حسب روت کلاس نوشتم ولی مشکلی که دارم این هست که توی هوک‌ها حتما باید این روت رو قبل کلاس نوشته شه  

<?php
/**
 * autoload class 
 */
class shop_autoloader_classes
{
    private static $_instance = null;
    public function __construct()
    {
        spl_autoload_register([$this, 'autoload']);
    }
    public static function get_instance()
    {
        if (self::$_instance === null) {
            self::$_instance = new self();
        }
    }
    private function autoload($class_name)
    {
        $path_class = SHOP_DIR . str_replace('\\', DIRECTORY_SEPARATOR, $class_name) . '.classes.php';
        if (file_exists($path_class) && is_readable($path_class)) {
            include $path_class;
        } else {
            echo "class  {$path_class} not found";
            exit();
        }
    }
}
shop_autoloader_classes::get_instance();
<?php
include "bootstrap/init.php";
add_action('after_setup_theme', 'App\setup::init');

این که روت کلاس رو باید قبل کلاس بنویسم به نظرتون کار درستیه؟ و باعث کثیف نوشته شدن بخش هوک‌ها نمیشه

سلام. مشکل خاصی درست نمی‌کنه. اما می‌تونی از روش فرخوانی هوک‌ها در خود کلاس‌ها هم استفاده کنید و در نهایت خود کلاس رو نمونه سازی کنید تا هوک اجرا بشه.

بهترین پاسخ
کیوان علی محمدی ۰۵ مرداد ۱۳۹۹، ۱۳:۰۰