Composer คือ dependency manager สำหรับ PHP โดยจะโหลดไฟล์ PHP packages ที่จำเป็นต้องใช้ในโปรเจคเราและทำการจัดระเบียบไฟล์ให้อยู่ในแหล่งเดียวกันด้วยการสั่งจาก Command line ซึ่งทำให้เราได้รับไฟล์ที่ถูกต้องและไม่ซ้ำซ้อนอีกทั้งยังลดความเสี่ยงต่อการติดไวรัสหากไปหาดาวน์โหลดเอง
Composer ถูกใช้งานใน modern PHP frameworks และ platforms เช่น Laravel, Synfony, Drupal, Magento เป็นต้น ซึ่งทำให้การพัฒนาโปรแกรมด้วย PHP สามารถใช้งาน Package และ Library ต่าง ๆ ที่มีอยู่มากมายได้
ซึ่งการใช้ Dependency Manager ไม่ใช้เรื่องใหม่ซึ่งภาษาโปรแกรมคอมพิวเตอร์อื่นๆ ก็มีตัวการจัดการ library เช่น NPM for NodeJS, PIP for Python, Maven for Java เป็นต้น
Reference: https://getcomposer.org/
Composer Audit ช่วยวิเคราะห์หาช่องโหว่ด้านความปลอดภัย( Security risk) โดยแสดงข้อมูลตามหมายเลขเอกสาร CVE(Common Vulnerabilities and Exposures) ซึ่งช่วยให้เราทราบถึงความเสี่ยงและสามารถปิดกันช่องโหว่นั้นได้
อ้างอิงจาก https://php.watch/articles/composer-audit
วิธีติดตั้ง Composer on CentOS 8
www.linuxize.com/post/how-to-install-and-use-composer-on-centos-8/
1. ติดตั้ง PHP CLI ด้วยคำสั่ง
sudo dnf install php-cli php-json php-zip wget unzip
2. ดาวน์โหลด Composer ด้วยคำสั่ง
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
3. ตรวจสอบ data integrity ด้วยการ compare กับไฟล์
SHA-384 ที่ Composer Public Keys / Signatures page.
ด้วยคำสั่ง wget เพื่อ ดาวน์โหลด signature
HASH="$(wget -q -O - https://composer.github.io/installer.sig)"
4. ตรวจสอบ installation ว่าไม่ corrupted ด้วยคำสั่ง
php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
เมื่อรันแล้วจะขึ้นว่า Installer verified หากเป็นข้อความอื่นแสดงว่า Installer corrupt
5. ติดตั้ง Composer ด้วยคำสั่ง
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
6. Verify การติดตั้ง Composer ด้วยการ print ค่าออกมาดู ด้วยคำสั่ง
composer -V
การติดตั้งสำหรับ Windows
https://www.thaicreate.com/community/php-composer.html