ติดตั้ง Composer เพื่อบริหารจัดการไลบรารี PHP (ปรับปรุงใหม่)

เพื่อให้บริหารจัดการไลบราลีของ PHP ได้ง่ายมากขึ้น ทั้งการดาวน์โหลดไฟล์ไลบรารีของคนอื่นมาใช้ หรือจะพัฒนาโปรแกรมเอง เพื่อให้คนอื่นนำไปใช้ต่อไป แนะนำให้ใช้ composer ช่วยในการพัฒนาโปรแกรม PHP

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

ดาวน์โหลดไฟล์ installer สำหรับการติดตั้ง composer

รัน php ระบุออปชัน -r เพื่อรันคำสั่ง php ดาวน์โหลดไฟล์ (copy) สำหรับติดตั้ง

$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

ผลลัพธ์ที่ได้ จะได้ไฟล์ composer-setup.php

$ ls -l
-rw-rw-r--. 1 dev dev 293630 Jul 29 11:56 composer-setup.php

ใช้ฟังก์ชัน hash_file ใน php เพื่อตรวจสอบความถูกต้องของไฟล์ที่ดาวน์โหลดมาได้ ในที่นี้จะเป็นการตรวจสอบ hash แบบ SHA384 พร้อมเปรียบเทียบผลลัพธ์ที่ควรจะเป็น ถ้า hash ตรงกัน จะขึ้นข้อความ Installer verified แต่ถ้าไม่ถูกต้องเช่นดาวน์โหลดไม่ครบถ้วน หรือไฟล์ถูกเปลี่ยนแปลง จะขึ้นข้อความ Installer corrupt แล้วลบไฟล์ (unlink) ที่ดาวน์โหลดมา

$ php -r "if (hash_file('SHA384', 'composer-setup.php') === 'e115a8dc7871f15d853148a7fbac7da27d6c0030b848d9b3dc09e2a0388afed865e6a3d6b3c0fad45c48e2b5fc1196ae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
Installer verified

ถ้าไฟล์ถูกต้อง (Installer verified) ขั้นต่อไปก็ใช้ php รันไฟล์ composer-setup.php

$ php composer-setup.php
All settings correct for using Composer
Downloading 1.2.0...

Composer successfully installed to: /home/dev/composer.phar
Use it: php composer.phar

ผลลัพธ์ จะได้ไฟล์ composer.phar

$ ls -l
-rwxr-xr-x. 1 dev dev 1705467 Jul 29 11:58 composer.phar
-rw-rw-r--. 1 dev dev  293630 Jul 29 11:56 composer-setup.php

ใช้ฟังก์ชัน unlink() ใน php หรือก็เหมือนกับการใช้คำสั่ง rm ลบไฟล์ติดตั้งนั่นเอง

$ php -r "unlink('composer-setup.php');"

ทดลองรัน composer.phar

composer-on-centos-7

เพื่อความสะดวกในการใช้งาน แนะนำให้เปลี่ยนชื่อไฟล์เป็น composer แล้ว copy ไปไว้ใน /usr/local/bin

$ sudo cp composer.phar /usr/local/bin/composer

ข้อมูลอ้างอิง

Leave a Reply

Your email address will not be published.