- پنجشنبه 30 مهر 1405 ساعت 17:00
- 3.1.9
- کامل شده
- منقضی شده
Template Parser Class یک جایگزین ساده برای ترکیب مستقیم PHP و HTML در View است. این کلاس از متغیرهای جایگزینشونده در قالب استفاده میکند و برای قالبهای سادهای که منطق برنامهنویسی در آنها محدود است، کاربرد دارد.
ساختار و API اصلی
در قالب، متغیرها با جداکنندههای تعریفشده نوشته میشوند و با parse() مقداردهی میشوند. parse_string() رشته قالب را پردازش میکند و set_delimiters() جداکننده آغاز و پایان را تغییر میدهد. در صورت فعال بودن حلقهها و شرطهای ساده Parser، ساختار داده باید با قالب هماهنگ باشد.
نمونه استفاده
$this->load->library('parser');
$data = array('title' => 'فهرست محصولات', 'name' => 'کیبورد');
$this->parser->parse('products/list', $data);نکته مهم
Parser جایگزین کامل موتورهای قالب پیشرفته نیست. برای منطق پیچیده، از Viewهای واضح یا موتور قالب اختصاصی استفاده کنید و خروجی دادههای غیرقابل اعتماد را Escape کنید.
مطالعه مرتبط
برای ادامه مطالعه، MVC، کوئری، ترنزکشن را ببینید.
متدهای Parser
| متد یا مفهوم | کاربرد |
|---|---|
parse($template, $data) | پردازش فایل قالب با دادهها. |
parse_string($template, $data) | پردازش یک رشته قالب. |
set_delimiters($left, $right) | تغییر جداکننده متغیرها. |
loop | تکرار دادههای آرایهای در قالب. |
conditional blocks | نمایش بخشها بر اساس مقدارهای داده، در صورت پشتیبانی قالب. |
نحوه استفاده و عیبیابی
در یک Controller ابتدا Library را با Loader بارگذاری کنید، سپس تنظیمات محیطی را به آن بدهید و عملیات را اجرا کنید. نتیجه را از مسیر مشخص دریافت کنید و در صورت شکست، پیام خطا را در Log ثبت کنید. اگر Library به Driver خارجی وابسته است، وجود افزونه PHP یا برنامه موردنیاز را روی سرور بررسی کنید.
در محیط توسعه، مسیر موفق و مسیر خطا را جداگانه آزمایش کنید. ورودی خالی، مقدار نامعتبر، فایل بزرگ، Timeout سرویس خارجی و نبود مجوز نوشتن از سناریوهایی هستند که باید بررسی شوند. منابعی مانند اتصال شبکه و فایلهای موقت را پس از پایان عملیات آزاد کنید.
در بازبینی کد، ترتیب و نتیجه متدهای parse($template, $data)، parse_string($template, $data)، set_delimiters($left, $right)، loop را بررسی کنید. نام متد بهتنهایی تضمین نمیکند ورودی معتبر یا خروجی امن باشد، بنابراین رفتار هر متد را با تست و مستندات همان نسخه کنترل کنید.