ویوها در فریمورک فلر

ویوها (Views) در فریمورک فلر مسئول نمایش اطلاعات به کاربر هستند. فلر از موتور قالب قدرتمند Latte برای مدیریت و رندر کردن ویوها استفاده می‌کند که امنیت، سرعت و خوانایی بالایی را فراهم می‌کند.

ساختار فایل‌های ویو

تمام فایل‌های ویو در پوشه View/latte/ قرار دارند و پسوند آن‌ها .latte است. برای مثال:

  • View/latte/page/index.latte - ویوی صفحه اصلی
  • View/latte/page/portfolio.latte - ویوی نمونه‌کارها

نحوه رندر کردن ویو

برای رندر یک ویو، کنترلرها از متد latte() که در BaseController تعریف شده استفاده می‌کنند. نمونه‌ای از نحوه استفاده:


$this->latte('page/index', ['title' => 'خوش آمدید']);
    

آرگومان اول مسیر ویو (نسبت به پوشه latte/) و آرگومان دوم آرایه‌ای از داده‌هاست که به ویو ارسال می‌شود.

ارسال پارامتر به ویو

شما می‌توانید مقادیر مختلفی را به ویو ارسال کرده و از آن‌ها در داخل قالب استفاده کنید. برای مثال:


$data = ['title' => 'نمونه سایت', 'username' => 'سجاد'];
return $this->latte('page/welcome', $data);
    

سپس در ویوی welcome.latte می‌توانید این متغیرها را به راحتی نمایش دهید:


<h1>{$title}</h1>
<p>سلام {$username}!</p>
    

استفاده از Layout در ویوها

برای داشتن ساختاری مرتب و قابل تکرار، می‌توانید از layout در Latte استفاده کنید:


{layout '../../layouts/l-main.latte'}

                {block content}
                    <h1>خوش آمدید به سایت ما!</h1>
                {/block}
    

در این روش، قالب اصلی (Layout) تعریف شده و بلوک‌های محتوایی مختلف در آن پر می‌شوند.

بهترین روش‌ها برای کار با ویوها

  • منطق برنامه را از ویو جدا نگه دارید. (فقط متغیرهای آماده شده را نمایش دهید.)
  • از بخش‌بندی مناسب (Layout و Block) برای ویوهای بزرگ استفاده کنید.
  • از توابع و فیلترهای امن Latte برای جلوگیری از حملات XSS بهره ببرید.
  • فایل‌های ویو را با نام‌های معنادار و در ساختار مشخص ذخیره کنید.

تابع 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;
}
    

در اینجا، تابع View فایل ویو را بارگذاری می‌کند و با استفاده از تابع ob_start() محتویات آن را به صورت بافر ذخیره می‌کند. در نهایت، خروجی یا چاپ می‌شود یا به عنوان رشته بازگشت داده می‌شود.

تابع View2

تابع View2 مشابه View است ولی بدون استفاده از بافرینگ (ob_start) عمل می‌کند. این تابع فایل ویو را مستقیماً با داده‌ها بارگذاری و نمایش می‌دهد.


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

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

یادگیری بیشتر در مورد Latte

برای آشنایی بیشتر با موتور قالب‌بندی Latte که در فریمورک فلر استفاده می‌شود، به وب‌سایت رسمی آن مراجعه کنید. در این وب‌سایت، مستندات کاملی در مورد نحوه استفاده از امکانات مختلف Latte از جمله بلوک‌ها، فیلترها و توابع موجود است.

مستندات رسمی Latte

\/