ویوها (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
در Latte استفاده کنید:
{layout '../../layouts/l-main.latte'}
{block content}
<h1>خوش آمدید به سایت ما!</h1>
{/block}
در این روش، قالب اصلی (Layout) تعریف شده و بلوکهای محتوایی مختلف در آن پر میشوند.
تابع 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
مشابه View
است ولی بدون استفاده از بافرینگ (ob_start) عمل میکند. این تابع فایل ویو را مستقیماً با دادهها بارگذاری و نمایش میدهد.
function View2($file , $data = null)
{
if (!empty($data)){
extract($data);
}
require_once(CONFIG . '../View/' . $file . '.php');
}
تابع View2
دادهها را استخراج میکند و سپس فایل ویو را شامل میکند. این روش سادهتر است و برای موقعیتهای خاص مناسب است.
برای آشنایی بیشتر با موتور قالببندی Latte که در فریمورک فلر استفاده میشود، به وبسایت رسمی آن مراجعه کنید. در این وبسایت، مستندات کاملی در مورد نحوه استفاده از امکانات مختلف Latte از جمله بلوکها، فیلترها و توابع موجود است.