معرفی توابع اصلی فریمورک Flare

فریمورک Flare شامل توابع متعددی است که در سرتاسر برنامه قابل استفاده هستند و به شما کمک می‌کنند تا فرآیندهای رایج مانند رندر کردن ویوها، ریدایرکت کردن، بارگذاری کلاس‌ها و بسیاری دیگر را به سادگی انجام دهید. این توابع در مسیر Global_Functions/Flare.php قرار دارند و در اینجا به معرفی آن‌ها پرداخته‌ایم.

تابع View

تابع View برای رندر کردن یک فایل ویو با داده‌های دلخواه استفاده می‌شود. این تابع به شما این امکان را می‌دهد که متغیرهای مختلف را به ویو ارسال کرده و آن را نمایش دهید.


function View($filePath, $variables = array(), $print = false) {
    $output = NULL;
    $filePath = CONFIG.'../View/'.$filePath.'.php';
    if(file_exists($filePath)){
        extract($variables);
        ob_start();
        include $filePath;
        $output = ob_get_clean();
    }
    if ($print) {
        print $output;
    }
    return $output;
}

تابع View2

این تابع مشابه تابع View است، با این تفاوت که داده‌های ارسال شده به ویو به صورت مستقیم وارد متغیرهای آن فایل می‌شوند. این تابع برای زمانی که نیاز به رندر ساده ویو دارید، استفاده می‌شود.


function View2($file, $data = null) {
    if (!empty($data)) {
        extract($data);
    }
    require_once (CONFIG.'../View/'.$file.'.php');
}

تابع redirect

تابع redirect برای هدایت کاربران به آدرس‌های مختلف استفاده می‌شود. این تابع به صورت خودکار آدرس را به URL کامل تبدیل کرده و کاربر را به آن ریدایرکت می‌کند.


function redirect($url = '') {
    $url = $_ENV['URL'].$url;
    header("location: " . $url);
    return exit();
}

تابع CautoLoader

تابع CautoLoader برای بارگذاری خودکار کلاس‌ها در پروژه‌های PHP استفاده می‌شود. این تابع به دنبال فایل‌های کلاس در دایرکتوری‌های مشخص شده می‌گردد و آن‌ها را بارگذاری می‌کند.


function CautoLoader($class) {
    $dirs = ['Flare_Libraries', 'Libraries', 'Controllers', 'Middlewares'];
    foreach ($dirs as $dir) {
        $dir = "/../$dir/";
        $classNameParts = explode('\\', $class);
        $class = end($classNameParts);
        if (file_exists(__DIR__.$dir.$class.'.php')) {
            require_once __DIR__.$dir.$class.'.php';
        }
    }
}

تابع url

تابع url برای گرفتن URL کامل از درخواست جاری استفاده می‌شود. این تابع آدرس کامل صفحه را بر اساس پروتکل (HTTP یا HTTPS) و مسیر جاری می‌سازد.


function url($string = '', $x = false): string {
    $url = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
    if ($x) {
        return substr($url, 0, strpos($url, "?").$string);
    }
    return $url.$string;
}

تابع mega_copy

تابع mega_copy برای کپی کردن دایرکتوری‌ها و فایل‌ها از یک مسیر به مسیر دیگر به طور بازگشتی استفاده می‌شود. این تابع ابتدا بررسی می‌کند که آیا دایرکتوری مقصد وجود دارد یا نه و سپس اقدام به کپی فایل‌ها می‌کند.


function mega_copy($source, $destination) {
    if (!is_dir($destination)) {
        mkdir($destination, 0755, true);
    }
    $files = scandir($source);
    foreach ($files as $file) {
        if ($file !== '.' && $file !== '..') {
            $sourceFile = $source . '/' . $file;
            $destinationFile = $destination . '/' . $file;
            if (is_dir($sourceFile)) {
                mega_copy($sourceFile, $destinationFile);
            } else {
                copy($sourceFile, $destinationFile);
            }
        }
    }
}

تابع spa

تابع spa برای اضافه کردن قابلیت SPA (Single Page Application) به صفحات استفاده می‌شود. این تابع یک اسکریپت جاوااسکریپت تولید می‌کند که به کمک آن می‌توان محتوای صفحات را بدون رفرش مجدد بارگذاری کرد.


function spa() {
    return <<<\EOT

\EOT;
}
\/