เคยไหม?
- โค้ด PHP รกไปหมด เพราะต้องดาวน์โหลดไลบรารีเอง 😵💫
- ใช้ไลบรารีหลายตัว แต่ต้องอัปเดตเองทีละไฟล์ 🤯
- โปรเจกต์มีไฟล์เยอะ จัดการ dependencies ยากสุดๆ
ถ้าใช่... งั้นคุณต้องรู้จัก Composer ตัวช่วยสุดเทพของ PHP ที่จะทำให้ชีวิตการพัฒนาเว็บของคุณง่ายขึ้นแบบสุดๆ! 🎉
วันนี้เราจะพาไปรู้จัก Composer ตั้งแต่พื้นฐาน จนไปถึงเทคนิคระดับโปร! 💡
🎯 Composer คืออะไร?
Composer เป็น Dependency Manager สำหรับ PHP (ตัวจัดการแพ็กเกจ) หรือพูดง่ายๆ ก็คือ... ตัวช่วยติดตั้งไลบรารีแบบอัตโนมัติ 🎯
🔹 ไม่ต้องดาวน์โหลดไลบรารีเอง
🔹 อัปเดตไลบรารีได้ง่ายๆ ด้วยคำสั่งเดียว
🔹 ช่วยให้โปรเจกต์ PHP เป็นระเบียบ และจัดการได้ง่ายขึ้น
ลองนึกภาพแบบนี้...
- ถ้าคุณต้องใช้ Laravel, Symfony, Guzzle, หรือไลบรารีอื่นๆ คุณแค่สั่ง Composer ติดตั้งให้
- ไม่ต้องดาวน์โหลด ZIP, แตกไฟล์ แล้ว include ทีละตัวเองให้ยุ่งยาก
🛠 1. ติดตั้ง Composer
✅ ติดตั้งบน Windows
- ไปที่ 👉 https://getcomposer.org/
- ดาวน์โหลด Composer-Setup.exe
- กดติดตั้ง (Next ๆ ๆ ไปเลย)
เสร็จแล้ว! 🎉
✅ ติดตั้งบน macOS / Linux
รันคำสั่งนี้ใน Terminal
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"
จากนั้นย้าย Composer ไปที่ /usr/local/bin/ เพื่อเรียกใช้งานง่ายๆ
sudo mv composer.phar /usr/local/bin/composer
เช็คว่า Composer ติดตั้งสำเร็จหรือไม่
composer --version
ถ้าเห็นเวอร์ชันแสดงขึ้นมา เช่น Composer version 2.x.x ✅ แปลว่าพร้อมใช้งาน!
📦 2. เริ่มต้นใช้งาน Composer ในโปรเจกต์
🔹 สร้างโปรเจกต์ PHP ใหม่
สมมติว่าคุณจะสร้างโปรเจกต์ชื่อ myproject
mkdir myproject && cd myproject
composer init
Composer จะถามข้อมูลต่างๆ เช่น
- ชื่อแพ็กเกจ
- คำอธิบาย
- เวอร์ชัน
- ผู้พัฒนา
สามารถกด Enter ข้ามไปได้หมด แล้วสุดท้ายกด "Yes"
ผลลัพธ์คือ Composer จะสร้างไฟล์ composer.json ซึ่งใช้เก็บข้อมูลเกี่ยวกับแพ็กเกจที่โปรเจกต์ต้องใช้
🔥 3. ติดตั้งไลบรารีด้วย Composer
✅ ติดตั้งไลบรารี (เช่น Guzzle สำหรับ HTTP Requests)
สมมติว่าคุณต้องการใช้ Guzzle เพื่อทำ HTTP Request
composer require guzzlehttp/guzzle
Composer จะ:
✔️ ดาวน์โหลด Guzzle และ dependencies ที่เกี่ยวข้อง
✔️ สร้างโฟลเดอร์ vendor/ (เก็บไลบรารีทั้งหมด)
✔️ อัปเดต composer.json และสร้าง composer.lock
🎯 วิธีใช้ Guzzle ในโค้ด PHP
<?php
require 'vendor/autoload.php'; // โหลด Composer Autoload
use GuzzleHttp\Client;
$client = new Client();
$response = $client->request('GET', 'https://api.github.com');
echo $response->getBody();
?>
👉 ง่ายมาก! ไม่ต้องดาวน์โหลดไลบรารีเองเลย
🔄 4. อัปเดตและลบแพ็กเกจ
🔹 อัปเดตไลบรารีทั้งหมด
composer update
(ใช้เมื่อมีแพ็กเกจใหม่ออกมา และต้องการอัปเดตทั้งหมด)
🔹 อัปเดตเฉพาะแพ็กเกจ
composer update guzzlehttp/guzzle
🔹 ลบแพ็กเกจ
composer remove guzzlehttp/guzzle
⚡ 5. ใช้งาน Autoload ให้โค้ดสะอาดขึ้น
Composer มีระบบ autoload ซึ่งช่วยให้เราไม่ต้อง require ไฟล์เอง
🔹 สร้างโครงสร้างโค้ดแบบ OOP
mkdir src
touch src/MyClass.php
สร้างไฟล์ src/MyClass.php
<?php
namespace MyApp;
class MyClass {
public function sayHello() {
return "Hello, Composer!";
}
}
?>
จากนั้นอัปเดต composer.json ให้รองรับ Autoload
"autoload": {
"psr-4": {
"MyApp\\": "src/"
}
}
รันคำสั่ง
composer dump-autoload
ใช้งานได้เลยในไฟล์ index.php
<?php
require 'vendor/autoload.php';
use MyApp\MyClass;
$obj = new MyClass();
echo $obj->sayHello();
?>
🔥 แค่นี้ก็ไม่ต้อง require ไฟล์เองอีกต่อไป!
🎯 6. ใช้ Composer ติดตั้ง Laravel
ถ้าคุณอยากลองใช้ Laravel ก็แค่รันคำสั่งนี้
composer create-project --prefer-dist laravel/laravel my-laravel-app
แล้วรอให้ Composer จัดการทุกอย่างให้! 🚀
🔥 7. ใช้ Composer กับ Docker
ถ้าคุณพัฒนา PHP บน Docker สามารถใช้ Composer ได้ง่ายๆ ด้วย Docker
docker run --rm -v $(pwd):/app composer install
🏆 8. เคล็ดลับ Composer ระดับโปร
✅ เช็คแพ็กเกจทั้งหมดที่ติดตั้ง
composer show
✅ เช็คว่ามีอัปเดตใหม่หรือไม่
composer outdated
✅ ล้าง cache เมื่อมีปัญหา
composer clear-cache
✅ โหลดแพ็กเกจแบบไม่ใช้ Dev Dependencies (เหมาะกับ Production)
composer install --no-dev --optimize-autoloader
✅ สรุป
✔️ Composer คือเครื่องมือจัดการแพ็กเกจที่ช่วยให้การพัฒนา PHP เป็นระเบียบและง่ายขึ้น
✔️ ใช้ติดตั้ง อัปเดต และลบไลบรารีได้ง่ายๆ ด้วยคำสั่งเดียว
✔️ รองรับ Autoload ทำให้โค้ดสะอาดขึ้น
✔️ ใช้กับ Laravel และ PHP Framework อื่นๆ ได้อย่างมีประสิทธิภาพ
✔️ ใช้กับ Docker ได้แบบมือโปร