การจัดการ Library หรือ Package ภาษา PHP ด้วย Composer

Composer เป็นเครื่องมือสำหรับใช้จัดการ Library หรือ Package ของภาษา PHP



การจัดการ-Library-หรือ-Package-ภาษา-PHP-ด้วย-Composer

Composer เป็นเครื่องมือสำหรับใช้จัดการ Library หรือ Package ของภาษา PHP ที่นักพัฒนาทั้งหลายได้พัฒนาไว้ โดยสามารถนำไปใช้งานได้โดยไม่มีค่าใช้จ่าย และยังช่วยให้เราสามารถติดตั้ง และประกาศใช้ชุดโค้ดเหล่านี้ได้สะดวกและง่ายยิ่งขึ้น

ความต้องการของระบบ (System Requirements)

Composer สามารถรอบรับกับ PHP เวอร์ชั่น 5.3.2 เป็นต้นไป สามารถรองรับในหลายแพลตฟอร์ม ได้แก่ Windows, Linux และ MacOS ด้านการติดตั้งมีทั้งแบบที่รันคำสั่งด้วยตนเอง (Manual Installation) ผ่าน Command Line และใช้ตัวติดตั้งอัตโนมัติ (Installer) สำหรับ Windows

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

การติดตั้งโดยใช้ตัว Installer

ดาวน์โหลดไฟล์ติดตั้งได้ที่ลิงค์ https://getcomposer.org/Composer-Setup.exe และรันไฟล์ Composer-Setup.exe โปรแรกมจะติดตั้ง Composer เวอร์ชันล่าสุด พร้อมตั้งค่า PATH เพื่อให้เราสามารถเรียก Composer ผ่านทาง Command Line จากไดเร็กทอรีใดก็ได้

การติดตั้งโดยใช้ Command Line

หากต้องการติดตั้ง Composer อย่างรวดเร็วในไดเร็กทรอรีปัจจุบัน ให้รันคำสั่งต่อไปนี้ผ่าน Command Line ระบบจะทำการดาวน์โหลดและติดตั้งโปรแกรมให้เราทันที

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

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

หมายเหตุ ก่อนติดตั้ง Composer ต้องติดตั้งโปรแกรมภาษา PHP หรือชุดเครื่องมือพัฒนาภาษา PHP ก่อน เช่น Xampp เป็นต้น

เมื่อติดตั้งเสร็จแล้วเราสามารถทดสอบการติดตั้งโดยใช้คำสั่ง php composer.phar โดยผลลัพท์ที่ได้จะแสดงเวอร์ชั่น และคำสั่งต่างๆ สำหรับใช้งาน Composer ผ่านทาง Command Line ดังรูป


การใช้งาน

ให้เราสร้างไฟล์ชื่อ composer.json เพื่อใช้เป็นค่าในการระบุชื่อและเวอร์ชั่นของแพ็คเกจที่เราต้องการติดตัั้ง ดังตัวอย่าง

{
    "require": {
        "monolog/monolog": "2.0.*"
    }
}

สามารดูรายละเอียดการสร้าง composer.json เพิ่มเติมได้ที่ https://getcomposer.org/doc/04-schema.md

จากนั้นให้ทดลองรันคำสั่ง composer install จากนั้นโปรแกรมจะทำการดาวน์โหลดแพ็คเกจที่เราต้องการทั้งหมดลงในไดเรกทรอรีที่เรารันคำสั่ง ซึ่งจะโดนรวบรวมไว้ในไดเรกทอรีชื่อ vendor ดังรูป

ตัวอย่างโค้ดการใช้งานแพ็คเกจ Monolog

เราสามารถเรียกใช้ Library ในแพ็คเกจทั้งหมดที่ดาวน์โหลดมาโดยใช้คำสั่งภาษา PHP ดังนี้


require __DIR__."/vendor/autoload.php"; // This tells PHP where to find the autoload file so that PHP can load the installed packages


จากนั้นให้ใส่คำสั่งเรียกการใช้งาน Library ของ Monolog และคำสั่งต่างๆ ลงไปดังรูปตัวอย่าง


require __DIR__."/vendor/autoload.php"; // This tells PHP where to find the autoload file so that PHP can load the installed packages

use Monolog\Logger; // The Logger instance
use Monolog\Handler\StreamHandler; // The StreamHandler sends log messages to a file on your disk

$logger = new Logger("daily");

$stream_handler = new StreamHandler(__DIR__."/test_app.log");
$logger->pushHandler($stream_handler);

$logger->debug("This is a debug message.");
$logger->info("This is an info level message.");
$logger->notice("This is a notice level message.");
$logger->warning("This is a warning level message.");
$logger->error("This is an error level message.");
$logger->critical("This is a critical level message.");
$logger->alert("This is an alert level message.");
$logger->emergency("This is an emergency level message.");

?>

ผลลัพท์ที่ได้

โปรแกรมจะสร้างไฟล์ Log ชื่อ test_app.log โดยจัดเก็บรายการ Log ต่างๆ พร้อมวันและเวลาที่มีการจัดเก็บไว้ ดังรูป


สรุป

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

By : สรรพโชค สิงหสุวรรณ

โปรไฟล์ Blog โปรไฟล์ E-portfolio

หมวดหมู่ : เทคโนโลยี

ผู้เข้าชม 4527 ครั้ง 2022-10-01 12:19:49

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