跳到主要内容

เนื้อหาภาษาไทย / 泰语内容

系统指南 内容已审核

การอัพเดท Dependencies ด้วยคำสั่ง composer update

บทความนี้อธิบายวิธีการอัพเดท Dependencies ในโปรเจกต์ PHP ด้วยคำสั่ง `composer update` ซึ่งจะดาวน์โหลดเวอร์ชันใหม่ล่าสุดที่ตรงตามข้อกำหนดใน `composer.json` พร้อม...

การอัพเดท Dependencies ด้วยคำสั่ง composer update

หลังจากที่เราได้เรียนรู้วิธีการติดตั้ง Dependencies ด้วยคำสั่ง composer install ในบทที่แล้ว ในบทนี้เราจะมาดูวิธีการอัพเดท Dependencies เหล่านั้นให้เป็นเวอร์ชันใหม่ล่าสุดด้วยคำสั่ง composer update กันครับ

composer update คืออะไร?

composer update เป็นคำสั่งที่ใช้สำหรับอัพเดท Dependencies ในโปรเจกต์ของเราให้เป็นเวอร์ชันใหม่ล่าสุดที่ตรงตามข้อกำหนดที่เราได้ระบุไว้ในไฟล์ composer.json คำสั่งนี้จะทำการ:

  • ตรวจสอบเวอร์ชันใหม่ของ Dependencies ที่มีอยู่
  • ดาวน์โหลดเวอร์ชันใหม่ของ Dependencies ที่ตรงตามข้อกำหนด
  • อัพเดทไฟล์ composer.lock ให้บันทึกเวอร์ชันใหม่ของ Dependencies
  • อัพเดทโฟลเดอร์ vendor ด้วย Dependencies เวอร์ชันใหม่

พูดง่ายๆ คือ composer update จะทำให้โปรเจกต์ของเราใช้ Dependencies เวอร์ชันล่าสุดที่ยังคงเข้ากันได้กับข้อกำหนดที่เราตั้งไว้นั่นเอง

การจัดการเวอร์ชันของ Dependencies

ก่อนที่เราจะไปดูวิธีการใช้งาน composer update เรามาทำความเข้าใจเรื่องการจัดการเวอร์ชันของ Dependencies กันก่อนครับ Composer ใช้สิ่งที่เรียกว่า Semantic Versioning (SemVer) เพื่อระบุเวอร์ชันของ Packages ต่างๆ SemVer มีรูปแบบเป็น X.Y.Z โดยที่:

  • X คือ Major Version: มีการเปลี่ยนแปลงที่ไม่สามารถเข้ากันได้กับเวอร์ชันก่อนหน้า (Backward Incompatible)
  • Y คือ Minor Version: มีการเพิ่ม Feature ใหม่ แต่ยังคงเข้ากันได้กับเวอร์ชันก่อนหน้า
  • Z คือ Patch Version: มีการแก้ไข Bug แต่ยังคงเข้ากันได้กับเวอร์ชันก่อนหน้า

ตัวอย่างเช่น หากเรามี Dependency ที่มีเวอร์ชัน 1.2.3 การอัพเดทเป็น 1.2.4 จะเป็นการแก้ไข Bug เล็กน้อย ในขณะที่การอัพเดทเป็น 1.3.0 จะเป็นการเพิ่ม Feature ใหม่ และการอัพเดทเป็น 2.0.0 อาจจะมีการเปลี่ยนแปลงที่ทำให้โค้ดเก่าของเราไม่สามารถใช้งานได้

ในไฟล์ composer.json เราสามารถกำหนดช่วงของเวอร์ชันที่ยอมรับได้สำหรับแต่ละ Dependency ตัวอย่างเช่น:

{
    "require": {
        "monolog/monolog": "^2.0"
    }
}

ในตัวอย่างนี้ ^2.0 หมายความว่าเราอนุญาตให้ Composer ติดตั้งเวอร์ชัน 2.0 หรือสูงกว่า แต่ต่ำกว่า 3.0 ได้ (เช่น 2.1, 2.5, 2.9) สัญลักษณ์ ^ นี้เป็นที่นิยมเพราะช่วยให้เราได้รับการแก้ไข Bug และ Feature ใหม่ๆ โดยที่ยังมั่นใจได้ว่าโค้ดของเรายังคงทำงานได้

การใช้งานคำสั่ง composer update

การใช้งานคำสั่ง composer update นั้นง่ายมาก เพียงแค่เปิด Command Line หรือ Terminal แล้วเข้าไปใน Directory ของโปรเจกต์ จากนั้นพิมพ์คำสั่ง:

composer update

Composer จะทำการตรวจสอบ Dependencies ทั้งหมดที่อยู่ในไฟล์ composer.json และดาวน์โหลดเวอร์ชันใหม่ล่าสุดที่ตรงตามข้อกำหนด หลังจากนั้น Composer จะอัพเดทไฟล์ composer.lock และโฟลเดอร์ vendor ให้เป็นเวอร์ชันใหม่

หากเราต้องการอัพเดทเฉพาะบาง Dependencies เราสามารถระบุชื่อ Package ได้ดังนี้:

composer update monolog/monolog

คำสั่งนี้จะทำการอัพเดทเฉพาะ Package monolog/monolog เท่านั้น

ความเสี่ยงในการอัพเดท Dependencies

ถึงแม้ว่าการอัพเดท Dependencies จะช่วยให้เราได้รับ Feature ใหม่ๆ และแก้ไข Bug ต่างๆ แต่ก็มีความเสี่ยงที่ต้องพิจารณา:

  • Breaking Changes: การอัพเดท Major Version (เช่น จาก 1.0.0 เป็น 2.0.0) อาจมีการเปลี่ยนแปลงที่ไม่สามารถเข้ากันได้กับโค้ดเก่าของเรา ทำให้โค้ดของเราทำงานผิดพลาด
  • Bugs ใหม่: บางครั้งเวอร์ชันใหม่ของ Dependencies อาจมี Bug ที่ยังไม่ถูกค้นพบ ซึ่งอาจส่งผลกระทบต่อการทำงานของโปรเจกต์ของเรา
  • Dependency Conflicts: การอัพเดท Dependencies หนึ่ง อาจทำให้เกิด Conflict กับ Dependencies อื่นๆ ที่เราใช้

ดังนั้น ก่อนที่จะทำการ composer update เราควร:

  • อ่าน Release Notes: อ่าน Release Notes ของ Dependencies ที่เราจะอัพเดท เพื่อทำความเข้าใจว่ามีการเปลี่ยนแปลงอะไรบ้าง และมีผลกระทบต่อโค้ดของเราอย่างไร
  • ทำ Backup: ทำ Backup โค้ดของเราก่อนทำการอัพเดท เผื่อในกรณีที่เกิดปัญหา เราสามารถย้อนกลับไปใช้เวอร์ชันเดิมได้
  • ทดสอบโค้ด: หลังจากอัพเดท Dependencies แล้ว ให้ทำการทดสอบโค้ดของเราอย่างละเอียด เพื่อให้แน่ใจว่าทุกอย่างยังทำงานได้ตามปกติ

นอกจากนี้ เรายังสามารถใช้คำสั่ง composer show -a <package-name> เพื่อดูรายละเอียดของ Package และ Versions ที่มีอยู่ได้ ตัวอย่างเช่น:

composer show -a monolog/monolog

คำสั่งนี้จะแสดงข้อมูลเกี่ยวกับ Package `monolog/monolog` รวมถึง Versions ที่สามารถใช้ได้, License, และ Dependencies อื่นๆ ที่เกี่ยวข้อง

สรุป

ในบทนี้เราได้เรียนรู้วิธีการอัพเดท Dependencies ด้วยคำสั่ง composer update รวมถึงความสำคัญของการจัดการเวอร์ชันและความเสี่ยงที่อาจเกิดขึ้นจากการอัพเดท Dependencies การทำความเข้าใจในเรื่องเหล่านี้จะช่วยให้เราสามารถจัดการ Dependencies ในโปรเจกต์ PHP ของเราได้อย่างมีประสิทธิภาพและปลอดภัยยิ่งขึ้น

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

Office.in.th Custom Service

想基于此结构开发或定制系统?

Office.in.th 承接企业级 Web Application、API Integration 以及政府/企业管理系统的设计与开发,并提供长期支持。

查看软件开发服务