ویو ها View
آرگومان اول مسیر ویو (نسبت به پوشه 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 از جمله بلوکها، فیلترها و توابع موجود است.