เพื่อให้บริหารจัดการไลบราลีของ 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 แล้ว copy ไปไว้ใน /usr/local/bin
$ sudo cp composer.phar /usr/local/bin/composer