- چهارشنبه 29 مهر 1405 ساعت 21:00
- 3.1.9
- کامل شده
- منقضی شده
Output Class پاسخ نهایی برنامه را به مرورگر یا Client ارسال میکند. این کلاس امکان تعیین بدنه پاسخ، Headerهای HTTP، نوع محتوا، وضعیت HTTP، کش مرورگر و نمایش Profiler را فراهم میکند.
ساختار و API اصلی
set_output() بدنه پاسخ را تعیین میکند، set_header() Header میافزاید، set_status_header() کد وضعیت را تنظیم میکند، set_content_type() نوع MIME و Charset را مشخص میکند، cache() سیاست Cache مرورگر را تنظیم میکند و get_output() محتوای فعلی را برمیگرداند.
نمونه استفاده
$this->output
->set_status_header(200)
->set_content_type('application/json', 'utf-8')
->set_output(json_encode(array('ok' => TRUE, 'count' => 3)));نکته مهم
در پاسخ JSON، داده را با json_encode() تولید کنید و Header درست بفرستید. برای خطاهای HTTP از Status Code مناسب استفاده کنید و اطلاعات حساس را در خروجی قرار ندهید.
مطالعه مرتبط
برای ادامه مطالعه، MVC، کوئری، ترنزکشن را ببینید.
متدهای Output
| متد یا مفهوم | کاربرد |
|---|---|
set_output($output) | تعیین بدنه پاسخ. |
set_header() | افزودن Header HTTP. |
set_status_header() | تنظیم Status Code. |
set_content_type() | تعیین MIME Type و Charset. |
get_output() | خواندن خروجی فعلی. |
cache($minutes) | تنظیم Cache مرورگر. |
enable_profiler() | فعال کردن Profiler برای عیبیابی. |
نحوه استفاده و عیبیابی
در یک Controller ابتدا Library را با Loader بارگذاری کنید، سپس تنظیمات محیطی را به آن بدهید و عملیات را اجرا کنید. نتیجه را از مسیر مشخص دریافت کنید و در صورت شکست، پیام خطا را در Log ثبت کنید. اگر Library به Driver خارجی وابسته است، وجود افزونه PHP یا برنامه موردنیاز را روی سرور بررسی کنید.
در محیط توسعه، مسیر موفق و مسیر خطا را جداگانه آزمایش کنید. ورودی خالی، مقدار نامعتبر، فایل بزرگ، Timeout سرویس خارجی و نبود مجوز نوشتن از سناریوهایی هستند که باید بررسی شوند. منابعی مانند اتصال شبکه و فایلهای موقت را پس از پایان عملیات آزاد کنید.
در بازبینی کد، ترتیب و نتیجه متدهای set_output($output)، set_header()، set_status_header()، set_content_type() را بررسی کنید. نام متد بهتنهایی تضمین نمیکند ورودی معتبر یا خروجی امن باشد، بنابراین رفتار هر متد را با تست و مستندات همان نسخه کنترل کنید.