Composer เป็นเครื่องมือ ของ PHP ใช้จัดการ library ที่ต้องการใช้ในโปรเจ็ค ลักษณะการใช้งานคือ ให้เราระบุ library ที่โปรเจ็คของเราต้องการไว้ในไฟล์ composer.json จากนั้น composer จะทำการติดตั้งหรืออัพเดท library ที่เราต้องการให้เลย ช่วยให้เราจัดการกับ library ได้ง่ายขึ้น
ในบทความนี้ผมจะพูดถึงการใช้งานเลยนะครับ เพราะวิธีการติดตั้งที่เว็บของ Composer เอง อธิบายไว้ละเอียดดีแล้วครับ ^^
เริ่มต้นกันเลยดีกว่าครับ สำหรับโปรเจ็คผมให้ชื่อว่า basic-composer ก็แล้วกันครับ สมมติผมอยากใช้งาน PHPUnit เพื่อจะได้พัฒนาโปรเจ็คด้วย TDD (Test Driven Development) ก็ใช้คำสั่งดังนี้ครับ
composer require phpunit/phpunit
คำสั่ง require จะทำการติดตั้ง library ที่เราเลือกให้และ library อื่นๆ ที่ library ที่เราเลือกใช้งานด้วยครับ อ่อลืมบอกไปเพื่อนๆ สามารถค้นหา library ที่ต้องการได้จากเว็บไซต์ packagist.org ครับ
พอติดตั้งเสร็จแล้ว Composer จะเก็บ library ไว้ในโฟลเดอร์ vendor และสร้างไฟล์ composer.json ที่บอกว่าโปรเจ็คเราติดตั้ง library อะไรไว้บ้าง อีกไฟล์ที่ถูกสร้างขึ้นเพื่อเอาไว้เช็คว่ามีการแก้ไขไฟล์ composer.json รึป่าวก็คือไฟล์ composer.lock
ส่วนการใช้งานก็ไม่อยากครับ เพราะ Composer จะสร้างไฟล์ vendor/autoload.php ไว้ ซึ่งจะ autoload class ของ library ที่เราติดตั้งผ่าน Composer เราก็แค่ requre ‘vendor/autoload.php’ เข้าไปในไฟล์ bootstrap ของโปรเจ็ค เราก็สามารถใช้ library ในโปรเจ็คได้เลยครับ
คำสั่งที่เป็น CLI (Command line Interface) จะถูกเก็บไว้ในโฟลเดอร์ vendor/bin ครับ ตัวอย่างการรันคำสั่ง PHPUnit ก็จะรันประมาณนี้ครับ
./vendor/bin/phpunit --colors BasicComposerTest.php
โค้ด BasicComposerTest.php
<?php class BasicComposerTest extends PHPUnit_Framework_TestCase { function testMe() { $this->assertTrue(true); } }