Natcha Luang - Aroonchai

Trust me I'm Petdo

Bangkok, Thailand

[Laravel] วิธีใช้งาน helper ฟังก์ชันนอก Laravel

บทความนี้สาเหตุมาจากผมต้องการสร้างโปรเจคขนาดเล็กที่เขียนด้วย native PHP แต่ว่าต้องการใช้งานบางฟังก์ชันของ Laravel ซึ่งเขาเขียนไว้ดีมากอยู่แล้วคือพวก helper ฟังก์ชัน ทำให้ผมต้องหาวิธีติดตั้ง helper ฟังก์ชันเหล่านี้ในโปรเจคของผม จะเป็นอย่างไรมาดูวิธีการดีกว่าครับ

สำหรับเจ้า helper ฟังก์ชันที่ผมต้องการใช้งานในคราวนี้ จัดอยู่ในกลุ่มของฟังก์ชันที่ทำงานกับ array สามารถดูรายการ helper ฟังก์ชันทำหมดได้จาก ที่นี่

สารบัญ

ติดตั้ง Composer

สำหรับการทำงานครั้งนี้เราจำเป็นต้องพึ่งพาเครื่องมือที่ชื่อว่า Composer ซึ่งใครที่มีติดตั้งไว้อยู่แล้วก็ข้ามไปข้อถัดไปได้เลยครับ สำหรับใครที่ยังไม่เคยติดตั้งมาดูขั้นตอนการติดตั้งกันครับ

อธิบายกันก่อนว่า Composer เป็นโปรแกรมที่เขียนด้วย PHP แล้วจัดการ archive ให้อยู่ในรูปของไฟล์ .phar ซึ่งการที่เราจะสามารถทำให้ Composer หรือ PHP .phar ทั้งหลายทำงานได้เนี่ยจำเป็นต้องติดตั้ง PHP อยู่ในเครื่องเสียก่อน ซึ่งเชื่อว่าทุกคนน่าจะติดตั้งกันไว้อยู่แล้วไม่ว่าจะทั้ง AppServe, WAMP หรือติดตั้งด้วยตัวเองจาก บทความนี้

ซึ่งวิธีการติดตั้งในแต่ละระบบปฏิบัติการนั้นก็จะแตกต่างกันออกไป สำหรับ Windows ก็จะง่ายกว่าคนอื่นตรงที่มี installer มาให้โหลดได้จาก ลิงค์นี้

สำหรับ Unix และ Linux ให้เปิด terminal ขึ้นมาจากนั้นดาวน์โหลดตัว archive ด้วย cURL แบบนี้

$ sudo -s
# curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

เมื่อรันคำสั่ง cURL ก็จะทำการดาวน์โหลดไฟล์​ composer.phar จากนั้นก็จะสั่งรัน installer ด้วย PHP โดยส่ง flag ว่าให้ติดตั้งไว้ที่ /usr/local/bin และเปลี่ยนชื่อไฟล์เป็น composer เมื่อการติดตั้งเสร็จเรียบร้อยดีแล้วให้ทดลองเรียกใช้งานด้วยคำสั่งนี้

$ composer

จะได้ผลลัพธ์ออกมาแบบนี้

composer

ติดตั้ง helper ฟังก์ชัน

มาถึงส่วนของการติดตั้ง helper ฟังก์ชันด้วย Composer กันบ้าง หลังจากที่เราติดตั้ง Composer ลงในเครื่องเป็นที่เรียบร้อยแล้วเราก็จะใช้คำสั่งของ Composer ในการติดตั้งและยังใช้สำหรับจัดเก็บ dependency ต่าง ๆ ของโปรเจคเราได้อีกด้วย มาดูวิธีการกันดีกว่าครับ

ทำการติดตั้งแพคเกจด้วยคำสั่งนี้

$ cd /path/to/project
$ composer require illuminate/support ~5.1

รอจนกว่า Composer จะติดตั้งให้จนเสร็จ ตรงนี้กินเวลาสักเล็กน้อยครับ จากนั้นเมื่อการติดตั้งเสร็จเรียบร้อยแล้วเราจะเห็น folder ที่ชื่อว่า vendor โดยที่ Composer จะเก็บไฟล์แพคเกจต่าง ๆ รวมไปถึงการจัดการเรื่อง include path ไว้ในนี้ให้ด้วยครับ

ตัวอย่างการใช้งาน

หลังจากการติดตั้งเสร็จเรียบร้อยแล้ว เราจะลองมาใช้งานฟังก์ชันของ Laravel กันดูดีกว่าว่าจะเป็นอย่างไร ก่อนอื่นให้สร้างไฟล์ index.php ขึ้นมา อันนี้จะเป็นไฟล์ตัวอย่างที่จะใช้งานกัน จากนั้นให้พิมพ์คำสั่งสำหรับทำการโหลด dependencies ทั้งหลายของ Composer แบบนี้

index.php

<?php

require_once 'vendor/autoload.php';

if ( function_exists( 'array_pluck' ) )
  echo 'Success!';

โดยในตัวอย่างด้านบนจะเป็นการ include ไฟล์ที่เราติดตั้งด้วย Composer ทั้งหมดเพียงคำสั่งเดียวคือ require_once โดยเมื่อไฟล์ autoload.php ถูกโหลดเข้าสู่โปรแกรม Composer จะส่ง path ทั้งหมดที่ได้ทำการ generate เอาไว้แล้วเมื่อตอนที่เราติดตั้งแพคเกจ ทำให้การ include ไฟล์แพคเกจไม่จำเป็นต้องระบุ path ใด ๆ ทั้งสิ้นแถมยังใช้เพียงแค่คำสั่งสั้น ๆ ในการ include อีกด้วย ง่ายมากเลยใช่ไหมครับ

ต่อจากนั้นบรรทัดถัดมาจะเป็นการเชคว่าฟังก์ชัน array_pluck นั่นมีการประกาศแล้วหรือยัง ฟังก์ชัน array_pluck ไม่ใช่ฟังก์ชันมาตรฐานของ PHP แต่เป็นฟังก์ชันที่อยู่ใน helper ฟังก์ชันของ Laravel นั่นเองครับ


สามารถนำไปประยุกต์ใช้งานกับแพคเกจอื่น ๆ หรือถ้า framework เจ้าไหนที่เขียนในลักษณะ modular แบบนี้เราก็สามารถ include แพคเกจแบบแยกส่วนเหมือน Laravel ได้เช่นกันครับ

Comments