สร้าง Project PHP และจัดการ Package ด้วย Composer

การพัฒนาเว็บเพจด้วยภาษา PHP เรากำลังอยู่ในยุคของการจัดการกับ Package และ Library ต่าง ๆ ที่เป็น Open Source ที่มีอยู่มากมายตามแหล่งต่างๆ ให้มีความเป็นระบบเรียบร้อย มีความปลอดภัยในการดาวน์โหลดและนำมาใช้ เพราะก่อนหน้านี้เราจะเห็นว่าในกรณีที่จะต้องใช้ Library ต่างๆ นั้น จะต้องใช้วิธีการดาวน์โหลดไฟล์จากแหล่งนั้นมาใช้งาน ซึ่งจะพบกับความเสี่ยงต่างๆ จากการดาวน์โหลด ไม่ว่าจะเป็นความปลอดภัย ไวรัส มัลแวร์ ความน่าเชื่อถือ รวมทั้งไฟล์นั้นใช้งานตรงกับเวอร์ชั่นของ PHP ที่จะสามารถใช้งานได้หรือไม่ ซึ่งปัญหาเหล่านี้ได้ถูกพัฒนาจนมาถึงปัจจุบัน โดย Composer แนวคิดคือจะรวบรวมและจัดระเบียบ package และ library ต่างๆ ให้มาอยู่ในแหล่งเดียวกัน สามารถติดตั้ง Library ได้จาก Command ซึ่งโปรแกรมจะทำการตรวจสอบและดาวน์โหลด Package นั้นๆ มาใช้งาน

Composer คืออะไร

Composer เป็นโปรแกรมที่ใช้สำหรับการจัดการกับ Library ต่างๆสำหรับภาษา PHP ที่เราทำการติดตั้งมันเอาไว้ เมื่อ Library ได้มีการอัพเดท Composer ก็จะทำการอัพเดทให้โดยที่เราไม่ต้องไปยุ่งยากในการไปดาวน์โหลดตัวอัพเดตมาติดตั้งเองเลย ซึ่งตัว Composer นั้นสามารถใช้ร่วมกับ PHP Framework ได้หลากหลาย และส่วนใหญ่ก็รองรับ Composer อยู่แล้ว

Composer มีประโยชน์อย่างไร

  • เมื่อ Library มีการอัพเดท ก็สามารถอัพเดทได้เลยผ่าน Composer โดยที่เราไม่ต้องไปติดตามการอัพเดทที่หน้าเว็บเลย
  • ลดเวลาการค้นหา Library ที่เราต้องการ เพราะ Library ที่ขึ้นทะเบียนกับ packagist.org นั้นสามารถใช้ร่วมกับ Composer ได้
  • ลดการซ้ำซ้อนของการสร้าง Library สามารถค้นหาและตรวจสอบได้ว่า Library ตัวนี้เรามีแล้วหรือยัง
  • Library ที่เราสร้างจะสามารถใช้งานได้กับทุก Framework ที่ใช้ Composer

การทำงานของ Composer จะทำงานผ่านไฟล์ที่ชื่อว่า composer.json ซึ่งเป็นไฟล์ที่ใช้เป็นตัวจัดการกับ Library ต่างๆ

การติดตั้ง Composer บน Windows 10

1. เข้าไปที่เว็บไซต์ https://getcomposer.org/download/ จากนั้นให้คลิกที่ Composer-Setup.exe เพื่อดาวน์โหลดไฟล์มาติดตั้ง

2. เมื่อดาวน์โหลดไฟล์เสร็จแล้ว ก็จะได้ไฟล์ที่ชื่อ Composer-Setup.exe

3. Double-Click ที่ไฟล์ Composer-Setup.exe เพื่อติดตั้งโปรแกรม จากนั้นก็จะแสดงหน้าจอดังรูป เสร็จแล้วให้คลิกที่ปุ่ม Next เพื่อเข้าสู่ขั้นตอนถัดไป

4. จากนั้นก็จะแสดงหน้าจอการตั้งค่าเกี่ยวกับ PHP เพื่อเอาไว้ใช้รันโปรแกรม Composer ให้ทำเครื่องหมายถูกตรงหน้าประโยค Add this PHP to your path? เสร็จแล้วคลิกที่ปุ่ม Next

5. จากนั้นโปรแกรมจะตรวจสอบการตั้งค่า ให้รอสักครู่

6. เมื่อผ่านการตรวจสอบเบื้องต้นแล้ว จะแสดงหน้าจอเกี่ยวกับการตั้งค่า Proxy ให้คลิกที่ปุ่ม Next ได้เลย

7. จากนั้นก็จะแสดงหน้าจอพร้อมสำหรับการติดตั้ง Composer ให้คลิกที่ปุ่ม Install

8. จากนั้นก็จะทำการติดตั้งโปรแกรมบนเครื่อง

9. เมื่อติดตั้งเสร็จแล้ว จะแสดงข้อมูลเกี่ยวกับความสำคัญของการติดตั้ง Composer ให้คลิกที่ปุ่ม Next

10. จากนั้นก็จะแสดงหน้าจอว่า ได้ติดตั้ง Composer ลงบนเครื่องเรียบร้อยแล้ว ให้คลิกที่ปุ่ม Finish

11. ตรวจสอบว่า โปรแกรม Composer ที่ได้ติดตั้งไว้ใช้งานได้หรือไม่โดยเปิดโปรแกรม Command Prompt ขึ้นมา แล้วพิมพ์คำสั่ง composer -v เสร็จแล้วกดปุ่ม Enter บน Keyboard ถ้าหน้าจอแสดงโลโก้ Composer ขึ้นมา แสดงว่าโปรแกรมดังกล่าวพร้อมที่จะใช้งานได้แล้ว

12. ไปที่เว็บไซต์ https://getcomposer.org/download แล้วเลื่อนลงมาจนถึงในส่วน Manual Download ตามรูป

13. คลิกที่เวอร์ชันของโปรแกรม Composer ที่ติดตั้งอยู่เพื่อดาวน์โหลดไฟล์ composer.phar คุณสามารถตรวจสอบเวอร์ชันของโปรแกรมนี้ได้โดยเปิดโปรแกรม Command Prompt ขึ้นมา แล้วพิมพ์คำสั่ง composer -v แล้วกดปุ่ม Enter

14. นำไฟล์ composer.phar ไปไว้ในไดเรกทอรี C:\xampp\htdocs ในกรณีที่เครื่องคอมพิวเตอร์ของคุณใช้โปรแกรม XAMPP เป็นเว็บเซิร์ฟเวอร์

ตัวอย่างการใช้ Composer ในการสร้าง Project PHP และการจัดการกับ Package และ Library ต่างๆ

ในการสร้างเว็บไซต์ภาษา PHP ถ้าคุณต้องการเพิ่มความสามารถให้กับโปรเจ็กต์ของคุณ คุณต้องเพิ่ม Package ที่จำเป็นให้กับโปรเจ็กต์ของคุณโดยใช้ Composer ยกตัวอย่างเช่น ถ้าคุณต้องการสร้างไฟล์ PDF ด้วยภาษา PHP คุณจำเป็นต้องเพิ่มไลบรารี่ที่มีชื่อว่า mPDF เสียก่อน ซึ่งผู้เขียนจะขอพูดถึงไลบรารี่ mPDF ไว้พอสังเขป ดังนี้

mPDF คืออะไร

mPDF เป็น library PHP ที่ช่วยในการสร้างไฟล์ PDF โดยจุดเด่นของ mPDF คือการแปลงไฟล์ HTML ให้เป็น PDF ที่ mPDF สามารถอ่านค่า CSS ได้อย่างถูกต้องพอสมควร นอกจากนี้ยังสามารถสร้างไฟล์ PDF ได้ดีไม่ต่างจากเจ้าอื่นๆอย่าง FPDF, TCPDF mPDF ถูกสร้างมาจาก FPDF และ HTML2PDF ซึ่งนำมารวม Package และทำให้ง่ายและสะดวกมากยิ่งขึ้น

วิธีการสร้าง Project

1. เริ่มจากการสร้าง Folder ใน Root directory ของ Web server ในที่นี้ผมตั้งชื่อว่า php_pdf โดยใช้ XAMPP เป็นเว็บเซิร์ฟเวอร์ (C:\xampp\htdocs\php_pdf)

2. จากนั้นก็สร้างไฟล์ composer.json ขึ้นมาโดยใส่ข้อความเป็น {} ดังนี้

3. จากนั้นเปิดโปรแกรม Command Prompt ขึ้นมา แล้วเข้าไปที่โฟลเดอร์ php_pdf จากนั้นพิมพ์คำสั่ง composer update จะเห็นว่ามี folder vendor เกิดขึ้นและมีไฟล์ต่างๆ เกิดขึ้นภายใต้โฟลเดอร์ php_pdf ดังนี้

โดย Package ต่างๆ จะถูก autoload เข้ามาโดยอัตโนมัติ โดยที่ไม่ต้อง include(); ไฟล์ Package ให้ยุ่งยาก

การติดตั้งแพ็กเกจ mPDF และใช้งานฟอนต์ภาษาไทยใน mPDF

1. ติดตั้งแพ็กเกจ mPDF โดยใช้ Composer โดยพิมพ์คำสั่ง composer require mpdf/mpdf ในโปรแกรม Command Prompt

2. สร้างโฟลเดอร์ fonts ไว้ใต้โฟลเดอร์ php_pdf แล้วคัดลอกไฟล์ Font ภาษาไทยที่จะใช้มาเก็บไว้ที่โฟลเดอร์นี้

3. สร้างเว็บเพจที่ชื่อ thai_pdf.php หรือจะตั้งชื่ออื่นก็ได้ แล้วเขียนโค๊ดตามนี้เพื่อเรียกใช้ฟอนต์พร้อมทั้งแสดงภาษาไทย

4. แก้ไขไฟล์ php.ini ซึ่งอยู่ในไดเรกทอรี่ c:\xampp\php โดยลบเครื่องหมาย semicolon ที่อยู่หน้าข้อความ extension=gd เพื่อเปิดใช้ gd extension ให้กับ PHP

5. เนื่องจากเวอร์ชันของ mpdf ที่ได้ลงเอาไว้ คือ เวอร์ชัน 6.1.3 ไม่สามารถใช้ได้กับ PHP เวอร์ชัน 8.1.6 ซึ่งมีอยู่บนเครื่องคอมพิวเตอร์ ดังนั้น จึงต้องไปแก้ไขไฟล์ composer.json ให้มีเนื้อหาดังนี้ เพื่อให้ mpdf สามารถใช้ได้กับเวอร์ชันของ PHP ที่มีอยู่บนเครื่อง

6. เปิดโปรแกรม Command Prompt พิมพ์คำสั่งเพื่อเข้าไปที่ไดเรกทอรี่ c:\xampp\htdocs\php_pdf จากนั้นพิมพ์คำสั่ง composer update เพื่ออัพเกรดเวอร์ชันของ mPDF

7. รันหน้าเว็บทดสอบจะได้ผลลัพธ์ดังนี้

ผู้เขียน

ปวรุตม์ พงศ์พฤฒานนท์
ฝ่ายระบบสารสนเทศ
สำนักคอมพิวเตอร์
pavarudh@g.swu.ac.th