BUNDLES(ส่วนขยาย)
Bundles คือส่วนเสริมของ laravel ที่ถูกเพิ่มเข้ามาในเวอร์ชัน
3 เองครับ bundles มีโครงสร้างที่เหมือนกับตัว laravel เอาเป็นว่าคือการย่อตัว
laravel ให้เล็กลงเหลือสิ่งที่จำเป็นต้องใช้จริงๆ
เริ่มแรกเลยเราก็ต้องไปบอกให้
laravel รู้ว่าขณะนี้เราได้เพิ่มส่วนขยายเข้ามาแล้ว
โดยการเข้าไปเพิ่มในไฟล์ start.php
<?php
Autoloader::namespaces(array(
'Admin' => Bundle::path('admin').'models',
));
ทีนี้เราจะเพิ่มอะไรต่อก็ต้องไปศึกษาเพิ่มเติมเอง
และไฟล์ start.php ใช้งานในโฟลเดอร์ bundles
ไม่ได้นะครับ
Registering Bundles( ทำให้ laravel รู้จักปลั๊กอิน )
ทีนีเราก็ต้องมาเพิ่มชื่อส่วนขยายของเรา
ไวที่ไฟล์ bundles.php เพื่อให้ laravel โหลดมาใช้ได้ครับ
return array('admin'),
เราสามารถกำหนดเส้นทางที่อยู่ของส่วนขยายเราได้ด้วยครับ
กรณีไม่ได้เอาไว้ตรง root
return array(
'admin' => array('location' => 'userscape/admin'),
);
ถ้าเราอยากทำที่เดียวจบเลยก็ไม่ต้องไปทำใน
start.php
เลยครับ ตัวอย่างข้างล่างเราตั้งค่าในไฟล์ bundles.php ทีเดียวจบ
return array(
'admin' => array(
'autoloads' => array(
'map' => array(
'Admin' => '(:bundle)/admin.php',
),
'namespaces' => array(
'Admin' => '(:bundle)/lib',
),
'directories' => array(
'(:bundle)/models',
),
),
),
);
Starting Bundles(ทำให้ส่วนขยายทำงาน)
สั่งให้ส่วนขยายทำงาน
Bundle::start('admin');
ถ้าเราไม่อยากทำ
แบบข้างบนบ่อยๆก็ใส่ค่าเพิ่มไปตรงไฟล์ bundles.php
ด้วยว่า auto => true เหมือนตัวอย่างเราสั่งให้
Laravel ทำงานอัตโนมัติ
return array(
'admin' => array('auto' => true),
);
สั่งให้ bundles หยุดทำงาน
Bundle::disable('admin');
ทีนี้เราก็เรียกใช้งานไฟล์ต่างของ ส่วนขยาย ได้ตามใจเลยครับ
return View::make('bundle::view');
โหลดการตั้งค่าของ
ส่วนขยายแค่ส่วนของไฟล์:
return Config::get('bundle::file.option');
โหลดค่าภาษาของ
ส่วนขยายแค่ส่วนของไฟล์:
return Lang::line('bundle::file.line');
เราสามารตรวจว่า ส่วนขยายยังมีอยู่ไหมได้โดยฟังชัน exist :
Bundle::exists('admin');
อยากได้ค่าที่อยู่ของ bundles ก็ใช้ path เหมือนในตัวอย่างเลยครับ:
$location = Bundle::path('admin');
อยากได้ค่าของการตั้งค่าในส่วนขยายทั้งหมดก็เหมือนในตัวอย่างเลยครับ:
$config = Bundle::get('admin');
อยากรู้ว่ามีส่วนขยายใดบ้างที่ทำงานอยู่ก็ชึคำสั่งนี้เลยครับ:
$names = Bundle::names();
ถ้าในส่วนขยายเรามีโฟลเดอร์
view ด้วยก็ต้องมีไฟล์ js,css,image ของตัวส่วนขยายเก็บไว้ที่โฟลเดอร์
public ด้วย
โชคดีที่เราใช้คำสั่ง artisan ใน cmd ช่วยคัดลอกได้เหมือนในตัวอย่างเลยครับ
php artisan bundle:publish
ที่นี้ไฟล์ข้างต้นจะถูกย้ายมาตามนี้ public/bundles/admin
โดยใช้ cmd ตามคำสั่งนี้เลยครับ laravel
จะไปโหลดมาจากที่อยู่ของไฟล์แล้วมาเก็บที่โฟลเดอร์ bundles ให้เลยครับ
php artisan bundle:install eloquent
ทีนี้ก็เหลือให้เราเอาใช้คำสั่ง bundle::publish กับ เอารายชื่อไปเพิ่มใน bundles.php
ไม่มีความคิดเห็น:
แสดงความคิดเห็น