آموزش Codeigniter - جلسه هشتم: کنترل و مدیریت خطاها
هنگام برنامهنویسی به هر زبانی و با هر ابزاری، مطمئنا خطاهای مختلفی ایجاد خواهد شد که باید آنها را کنترل و مدیریت کنیم. Codeigniter نیز از این قاعده مستثنا نیست اما این فریمورک قابلیتهایی دارد که کنترل خطاها را بسیار آسان میکند.
در حین استفاده از اپلیکیشنهای تحت وب با خطاهایی مواجه میشویم و اگر این خطاها را به درستی مدیریت نکنید، کاربران شما بسیار آزرده خواهند شد. همانطور که گفتیم در Codeigniter میتوان با استفاده از مکانیسم بسیار آسانی این مهم را انجام داد.
مثلا هنگامی که فریمورک در حالت توسعه قرار دارد، نسبت به زمانی که حالت تولید فعال شده، میتوان خطاهای ایجاد شده را بهخوبی شناسایی و نسبت به رفع آنها اقدام کرد.
با کمی تغییر در کدهای فایل index.php، محیط اپلیکیشن شما میتواند تغییراتی داشته باشد. شما میتوانید شیوه خطایابی را در سه حالت تعیین کنید: حالت توسعه، حالت تست و حالت تولید. بدین منظور باید خط زیر را در فایل یاد شده تغییر دهید.
define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development');
هر حالت خطایابی نیاز به سطح متفاوتی از گزارش خطا دارد. به صورت پیشفرض حالت توسعه، خطاها را نمایش میدهد. اما حالت تست و تولید، خطاها را مخفی میکنند. فریمورک Codeigniter سه تابع مختلف را برای مدیریت خطاها در اختیار ما قرار داده است که در زیر آنها را توضیح دادهایم:
- ()show_error : این تابه خطاها را در قالب HTML و در بالای نمایشگر، نشان خواهد داد.
- ()show_404 : اگر سعی کنید به صفحهای که وجود ندارد دسترسی داشته باشید، این تابع خطای مناسبی را نمایش خواهد داد.
- ()log_message : این تابه برای نوشتن پیامهای لاگ مورد استفاده قرار میگیرد. این متد زمانی کاربردی است که بخواهید خطاهای سفارشی خاص خودتان را در فایل لاگ بنویسید.
/*|--------------------------------------------------------------------------------| Error Logging Threshold|--------------------------------------------------------------------------------| You can enable error logging by setting a threshold over zero. The | threshold determines what gets logged. Threshold options are:|| 0 = Disable logging, Error logging TURNED OFF| 1 = Error Message (including PHP errors)| 2 = Debug Message| 3 = Informational Messages| 4 = All Messages|| You can also pass an array with threshold levels to show individual error types|| array(2) = Debug Message, without Error Messages| For a live site you'll usually only enable Errors (1) to be logged otherwise | your log files will fill up very fast.|*/$config['log_threshold'] = 0;
فایلهای لاگ را میتوانید در پوشهی application/log مشاهده کنید. پیش از فعال کردن گزارشگیری اطمینان حاصل کنید که این پوشه قابل نوشتن باشد.
قالبهای مختلف برای پیامهای لاگ را میتوانید در مسیر application/views/errors/cli یا application/views/errors/html مشاهده کنید.
با توجه به آنچه در این جلسه به شما توضیح دادیم، میتوانید خطاهای مختلف ایجاد شده در حین توسعهی اپلیکیشنهای تحتوب با Codeigniter را به راحتی شناسایی و نسبت به رفع آنها اقدام کنید.
دقت کنید که پس از رفع مشکلات احتمالی و پیش از ریلیز کردن اپلیکیشن خود روی سرور، خطایابی فریمورک را در حالت تولید قرار دهید.
اگر سوالی یا نظری در مورد مباحث مطرح شده در این جلسه دارید، لطفا از طریق بخش دیدگاهها آن را با زومیت و سایر کاربران به اشتراک بگذارید.