วันเสาร์ที่ 18 พฤษภาคม พ.ศ. 2556

Laravel::Bundles มาต่อกันที่เรื่องส่วนขยายหรือปลั๊กอินของ Laravel


BUNDLES(ส่วนขยาย)
Bundles คือส่วนเสริมของ laravel ที่ถูกเพิ่มเข้ามาในเวอร์ชัน  3 เองครับ bundles มีโครงสร้างที่เหมือนกับตัว laravel เอาเป็นว่าคือการย่อตัว laravel ให้เล็กลงเหลือสิ่งที่จำเป็นต้องใช้จริงๆ  


Creating Bundles( การสร้างส่วนขยาย )
เริ่มแรกเลยเราก็ต้องไปบอกให้ 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'),

);
Bundles & Class Loading
ถ้าเราอยากทำที่เดียวจบเลยก็ไม่ต้องไปทำใน 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');
Using Bundles( การใช้งานไฟล์ของส่วนขยาย )
ทีนี้เราก็เรียกใช้งานไฟล์ต่างของ ส่วนขยาย ได้ตามใจเลยครับ
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();
Bundle Assets
ถ้าในส่วนขยายเรามีโฟลเดอร์ view ด้วยก็ต้องมีไฟล์ js,css,image ของตัวส่วนขยายเก็บไว้ที่โฟลเดอร์ public ด้วย
โชคดีที่เราใช้คำสั่ง artisan ใน cmd ช่วยคัดลอกได้เหมือนในตัวอย่างเลยครับ
php artisan bundle:publish
ที่นี้ไฟล์ข้างต้นจะถูกย้ายมาตามนี้ public/bundles/admin 

Installing Bundles ( การติดตั้งส่วนขยายแบบง่ายที่สุดนะครับ)
โดยใช้ cmd ตามคำสั่งนี้เลยครับ laravel จะไปโหลดมาจากที่อยู่ของไฟล์แล้วมาเก็บที่โฟลเดอร์  bundles ให้เลยครับ
php artisan bundle:install eloquent
ทีนี้ก็เหลือให้เราเอาใช้คำสั่ง bundle::publish กับ เอารายชื่อไปเพิ่มใน bundles.php
คราวหน้าจะมาต่อเรื่อง การจัดการไฟล์ ครับ


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

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