• 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 را بررسی کنید. نام متد به‌تنهایی تضمین نمی‌کند ورودی معتبر یا خروجی امن باشد، بنابراین رفتار هر متد را با تست و مستندات همان نسخه کنترل کنید.

سایر پست های داکیومنت