วันศุกร์ที่ 24 พฤษภาคม พ.ศ. 2556

Lravel Auto Loading & Error รู้จักการตั้งค่าเวลาอยากจะเอาคลาสจากข้างนอกมาใช้กับการจัดการ error คับ

Class Auto Loading
Auto-loading คือ คลาสที่ให้เรานำ คลาสที่อยู่ภายนอก  มาลงชื่อให้ใช้งานได้ laravel ซึ่งอยูใน application/start.php
Registering Directories (ลงชื่อแบบที่อยู่)
ตัวอย่างนี้เราจะเพิ่ม โฟลเดอร์ entities กับ repositoriesที่อยู่ในโฟลเดอร์ application เข้ามาใช้งาน:
1.    Autoloader::directories(array(
2.        path('app').'entities',
3.        path('app').'repositories',
4.    ));
5.     
Method
Directory
path('app')
application
path('sys')
laravel
path('bundle')
bundles
path('storage')
storage
6.     
ข้างบนคือที่อยู่ของโฟลเดอร์หลักถ้าเราเปลี่ยนพารามิเตอร์ไปนะครับ
Registering Mappings

เหมือนในการใช้งาน  bundles นะครับ ที่เราต้องทำการลงชื่อ คลาสของ bundles เพื่อให้ laravel รู้จักมัน การ map คือการทำให้ laravel  รู้จักเฉพาะคลาสนั้นๆ:
1.    Autoloader::map(array(
2.        'User'    => path('app').'models/user.php',
3.        'Contact' => path('app').'models/contact.php',
4.    ));
Registering Namespaces ( ลงชื่อด้วย namespace )
Libraries  ส่วนใหญ่ของ php เขียนด้วย PSR-0 ( คำแนะนำและมาตรฐานการเขียนโค้ด php) หนึ่งในคำแนะนำนั้นคือ ชื่อของคลาสควรจะเหมือนกับชื่อไฟล์,และชื่อโฟลเดอร์ควรตรงกับ namespace.ถ้าไลบรารี่ที่เราใช้งานเขียนขึ้นมาด้วยมาตรฐานนี้ :
ก็ใส่ Namespace ไปแบบในตัวอย่างได้เลยครับ:
1.    Autoloader::namespaces(array(
2.        'Doctrine' => path('libraries').'Doctrine',
3.    ));
ก่อนที่ php  จะใช้ namespace การระบุโฟลเดอร์ทำได้โดยใช้ _. ยกตัวอย่าง เราใช้ SwiftMailer แล้วทุกคลาสขึ้นต้นด้วย "Swift_". เราก็ทำตามตัวอย่างเลยครับ
Autoloader::underscored(array(
1.        'Swift' => path('libraries').'SwiftMailer',
2.    ));

Errors & Logging ( การเก็บล็อกและการจัดการ error)
เราจะไปตั้งค่าที่ application/config/errors.php 
Ignored Errors ( ตั้งให้ไม่สนใจ error )
ส่วนมากตรงนี้เราจะตั้งให้ไม่แสดง error เลยก็ได้เพื่อความปลอดภัย ต่างกับ error detail คือแสดง error แต่ไม่แสดงรายละเอียด
Error Detail
 detail option เราจะตั้งให้เป็น false เมื่อเวลาระบบของเราปล่อยให้มีผู้ใช้งานแล้วนะครับ ป้องกันการบอกรายละเอียดของระบบแก่ภายนอก ถ้าอยู่ในช่วงพัฒนาก็ตั้งให้เป็น true ก่อนนะครับ เราไปตั้งค่าบอกให้ ผู้ใช้งานรู้ว่ามี error ที่ application/views/error/500.php นะครับ
Logging ( การทำล็อก )
เราตั้งค่า log ให้เป็น true เพื่อจะให้เก็บประวัติการพัฒนาระบบไว้ โดยค่าเริ่มต้นล็อกจะถูกเก็บไว้ที่โฟลเดอร์  storage/logs 
The Logger Class
เราสามารถเข้าไปตั้งค่าการเก็บล็อกได้ที่ class logger ตัวอย่างการแก้ไขนะครับ:
1.    Log::write('info', 'This is just an informational message!');
1.    Log::info('This is just an informational message!');

พรุ่งนี้ผมจะมาต่อเรื่องอะไรไม่บอกครับไว้ติดตามเอง

ไม่มีความคิดเห็น:

แสดงความคิดเห็น