Class Auto Loading
Auto-loading คือ คลาสที่ให้เรานำ คลาสที่อยู่ภายนอก มาลงชื่อให้ใช้งานได้ laravel ซึ่งอยูใน application/start.php
ตัวอย่างนี้เราจะเพิ่ม โฟลเดอร์ 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.
));
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)
Ignored Errors ( ตั้งให้ไม่สนใจ
error )
ส่วนมากตรงนี้เราจะตั้งให้ไม่แสดง error เลยก็ได้เพื่อความปลอดภัย
ต่างกับ error detail คือแสดง error แต่ไม่แสดงรายละเอียด
Error Detail
detail option เราจะตั้งให้เป็น false เมื่อเวลาระบบของเราปล่อยให้มีผู้ใช้งานแล้วนะครับ
ป้องกันการบอกรายละเอียดของระบบแก่ภายนอก ถ้าอยู่ในช่วงพัฒนาก็ตั้งให้เป็น true ก่อนนะครับ เราไปตั้งค่าบอกให้
ผู้ใช้งานรู้ว่ามี error ที่ application/views/error/500.php นะครับ
Logging ( การทำล็อก )
เราตั้งค่า log ให้เป็น true เพื่อจะให้เก็บประวัติการพัฒนาระบบไว้
โดยค่าเริ่มต้นล็อกจะถูกเก็บไว้ที่โฟลเดอร์ storage/logs
เราสามารถเข้าไปตั้งค่าการเก็บล็อกได้ที่ class logger ตัวอย่างการแก้ไขนะครับ:
1.
Log::write('info', 'This is just an
informational message!');
1.
Log::info('This is just an
informational message!');
พรุ่งนี้ผมจะมาต่อเรื่องอะไรไม่บอกครับไว้ติดตามเอง
ไม่มีความคิดเห็น:
แสดงความคิดเห็น