วันอาทิตย์ที่ 6 เมษายน พ.ศ. 2568

Composer จัดการแพ็กเกจใน PHP แบบมือโปร ใช้ง่าย ใช้เป็น ใช้แล้วชีวิตดีขึ้น!

เคยไหม?

  • โค้ด PHP รกไปหมด เพราะต้องดาวน์โหลดไลบรารีเอง 😵‍💫
  • ใช้ไลบรารีหลายตัว แต่ต้องอัปเดตเองทีละไฟล์ 🤯
  • โปรเจกต์มีไฟล์เยอะ จัดการ dependencies ยากสุดๆ

ถ้าใช่... งั้นคุณต้องรู้จัก Composer ตัวช่วยสุดเทพของ PHP ที่จะทำให้ชีวิตการพัฒนาเว็บของคุณง่ายขึ้นแบบสุดๆ! 🎉

วันนี้เราจะพาไปรู้จัก Composer ตั้งแต่พื้นฐาน จนไปถึงเทคนิคระดับโปร! 💡


🎯 Composer คืออะไร?

Composer เป็น Dependency Manager สำหรับ PHP (ตัวจัดการแพ็กเกจ) หรือพูดง่ายๆ ก็คือ... ตัวช่วยติดตั้งไลบรารีแบบอัตโนมัติ 🎯

🔹 ไม่ต้องดาวน์โหลดไลบรารีเอง
🔹 อัปเดตไลบรารีได้ง่ายๆ ด้วยคำสั่งเดียว
🔹 ช่วยให้โปรเจกต์ PHP เป็นระเบียบ และจัดการได้ง่ายขึ้น

ลองนึกภาพแบบนี้...

  • ถ้าคุณต้องใช้ Laravel, Symfony, Guzzle, หรือไลบรารีอื่นๆ คุณแค่สั่ง Composer ติดตั้งให้
  • ไม่ต้องดาวน์โหลด ZIP, แตกไฟล์ แล้ว include ทีละตัวเองให้ยุ่งยาก


🛠 1. ติดตั้ง Composer

✅ ติดตั้งบน Windows

  1. ไปที่ 👉 https://getcomposer.org/
  2. ดาวน์โหลด Composer-Setup.exe
  3. กดติดตั้ง (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 ได้แบบมือโปร

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

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