Composer เป็นเครื่องมือสำหรับบริหารจัดการซอร์ซโค้ด (PHP) ที่เกี่ยวที่คุณนำมาใช้ใชโปรเจ็ค (Dependency Management --PHP) โดยที่คุณแค่กำหนดค่าแพคเก็จ (Library) ที่คุณต้องการใช้งานไว้ในไฟล์คอนฟิก Composer จะดาวโหลดและติดตั้งเข้าไปในโปรเจ็คคุณให้เอง ... ว้าววว ;)
จริงๆแล้ว Composer ไม่ใช่ตัวจัดการแพคเก็จ!! (Package manager), จริงอยู่ที่ Composer ทำงานเกี่ยวกับ "แพคเก็จ (Packages)" หรือ Libraries แต่ Composer ก็จัดการมันเป็นโปรเจ็คๆ แค่พื้นฐานเท่านั้น โดยทำการติดตั้งแพคเก็จที่เกี่ยวข้องนั้นไว้ในโฟล์เดอร์ภายในโปรเจ็ค (โดยปกติคือโฟล์เดอร์ vendor
) และโดยค่าเริ่มต้นแล้ว Composer ไม่ติดตั้งอะไรไว้นอกโปรเจ็คของคุณ (Globally), 0 นั่นแหละมันก็เลยเป็นเพียง "เครื่องมือจัดการส่วนที่เกี่ยวข้อง"
แนวคิดนี้ไม่ใช่ของใหม่ และ Composer ก็ได้รับอิทธิพลมาจาก npm ของ node (nodejs) และ bundler ของ ruby และนี่ก็เป็นเครื่องมีออะไรแบบนั้นสำหรับ PHP :)
เหล่านี้คือปัญหาต่างๆที่ Composer ช่วยแก้ให้ได้:
a) โปรเจ็คของคุณต้องใช้ Libraries ตัวอื่นๆ ร่วมด้วย
b) ไลบรารี่บางตัวที่คุณต้องใช้นั้น ก็ต้องใช้ไลบรารี่ตัวอื่นๆ อีกเหมือนกัน
c) คุณต้องการกำหนดสิ่งที่โปรเจ็คของคุณจำเป็นต้องมี (Depend on)
d) Composer จะออกไปค้นหาเวอร์ชั่นของแพคเก็นที่ต้องติดตั้ง และจะติดตั้งมันให้ (แปลว่ามันจะต้องไปดาวน์โหลดมาติดตั้ง)
ลองดูกัน, ตอนที่คุณสร้างโปรเจ็คใหม่ขึ้นมาซักอัน และก็ต้องการใช้ไลบรารี่ที่ทำหน้าที่เก็บล็อกไฟล์ (Loggin) สมมุติว่าคุณเลือกใช้ monolog คุณก็ต้องเพิ่มมันเข้าไปในโปรเจ็คของคุณ, การใช้ Composer คุณก็แค่เพิ่มรายชื่อมันเข้าไปในรายการของไฟล์ composer.json
ซึ่งใช้บอกรายลเอียดส่วนที่เกี่ยวข้องที่คุณต้องใช้ในโปรเจ็ค เช่น
{
"require": {
"monolog/monolog": "1.2.*"
}
}
นี่คือการบอกว่าโปรเจ็คของคุณต้องการใช้แพคเก็จ (require) monolog/monolog
,
โดยระบุเบอร์ชั่นที่ขึ้นต้นด้วย 1.2
Composer ทำงานบน PHP 5.3.2+ (ขึ้นไป) มีอีกหลายๆ อย่างที่ต้องกำหนดค่าใน PHP และการคอมไพล์ ตอนที่คุณติดตั้ง Composer จะแจ้งเตือนคุณเองว่าอะไรบ้างที่เข้ากันได้หรือไม่ได้
การติดตั้ง Composer จากซอร์ซโคด (ไม่ใช่การติดตั้งจากไฟล์ zip) คุณต้องมี git
, hg
หรือ svn
ติดตั้งไว้ในเครื่องด้วย (เหล่านี้คือเครื่องมือจัดการเวอร์ชั่นหรือ Version control)
Composer ใช้งานได้แบบ multi-platform และใช้งานเหมือนกันหมดทั้ง Windows, Linux and OSX.
การใช้ Composer, เราต้องทำสองอย่าง อย่างแรกคือติดตั้ง Composer (นี่จะเป็นการดาวน์โหลดลงในโปรเจ็คของคุณ แปลว่าคุณต้องเข้าไปในโฟล์เดอร์โปรเจ็คก่อน):
$ curl -sS https://getcomposer.org/installer | php
การดาวโหลดนี้จะทำการตรวจสอบการตั้งค่าต่างของ PHP และดาวน์โหลดไฟล์ composer.phar
มายังโฟล์เดอร์ของคุณ ไฟล์นี้เป็น Composer binary อยู่ในรูปแบบของ PHAR (PHP
archive) ที่จะทำงานผ่าน PHP Command line
คุณสามารถระบุโฟล์เดอร์ที่จะติดตั้งก็ได้ ด้วยการเพิ่มคำสั่ง --install-dir
ต่อท้ายและระบุโฟล์เดอร์ที่ต้องการ (เป็นพาธแบบ / (relative) หรือ \ (absolute) ก็ได้):
$ curl -sS https://getcomposer.org/installer | php -- --install-dir=bin
คุณสามารถวางไฟล์นี้ไว้ตรงไหนก็ได้ (composer.phar
) ถ้าคุณวางไว้ใน PATH
(ตัวแปรพาธของระบบที่เข้าถึงได้ทุกที่),
คุณจะสามารถเรียกใช้ได้ทุกที่ บนระบบจำพวก unix คุณสามารถกำหนดให้มัน Run ได้โดยไม่ต้องเรียกคำสั่ง php
ใช้คำส่งต่อไปนี้เพื่อสามารถเรียกใช้ composer
ได้จากทุกๆที่ในระบบ
$ curl -sS https://getcomposer.org/installer | php
$ mv composer.phar /usr/local/bin/composer
หมายเหตุ: ถ้าคุณติอเรื่อง permissions ในการใช้คำสั่ง
mv
ให้ใช้sudo
ขึ้นต้น
จากนั้นคุณจะสามารถเรียกใช้แค่เพียงพิมพ์ composer
แทนที่จะต้องพิมพ์ php composer.phar
Composer เป็นส่วนหนึ่งของโปรเจ็ค homebrew-php
- เพิ่ม (Tap) homebrew-php repository เข้าในการติดตั้งของ brew ด้วยคำสั่ง:
brew tap josegonzalez/homebrew-php
- พิมพ์คำสั่งติดตั้ง
brew install josegonzalez/php/composer
. - ใช้งาน Composer ด้วยคำสั่ง
composer
หมายเหตุ: ถ้ามีความผิดพลาดเกี่ยวกับ PHP53 หรือสูงกว่า ให้ใช้คำสั่งนี้
brew install php53-intl
นี่เป็นวิธีที่ง่ายที่สุดที่ใช้ในการติดตั้ง Composer ลงเครื่องของคุณ
ดาวน์โหลดและเรียกใช้ Composer-Setup.exe,
ซึ่งจะทำการดาวน์โหลดเวอร์ชั่นล่าสุดของ Composer และติดตั้งลงใน PATH และหลังจากเสร็จแล้วก็แค่เรียกใช้ด้วยคำสั่ง composer
ซึ่งสามารถเรียกได้จากทุกๆ ที่
เปลี่ยนโฟล์เดอร์ไปที่ PATH
(โฟล์เดอร์ระบบที่เข้าถึงได้ทุกที่) และใช้คำสั่งติดตั้ง
composer.phar:
C:\Users\username>cd C:\bin
C:\bin>php -r "readfile('https://getcomposer.org/installer');" | php
หมายเหตุ: ถ้าคำสั่งของบนมีปัญหาเกี่ยวกับการอ่านไฟล์ ให้ใช้
http
หรือคุณต้องเปิดตัว php_openssl.dll ใน php.ini
สร้างไฟล์ชื่อว่า composer.bat
เพื่อเรียก composer.phar
:
C:\bin>echo @php "%~dp0composer.phar" %*>composer.bat
ปิดหน้าต่าง terminal ออกไปเพื่อลองทดสอบ ด้วยการเปิดหน้าต่าง terminal อันใหม่ (run\cmd):
C:\Users\username>composer -V
Composer version 27d8904
C:\Users\username>
ตอนนี้เราสามารถใช้งาน Composer สำหรับการจัดการไฟล์ที่เกี่ยวข้องในโปรเจ็คของเราได้แล้ว ถ้าคุณยังไม่มีไฟล์ composer.json
อยู่ในโปรเจ็คให้ข้ามไปอ่านที่บท
การใช้งานเบื้องต้น
ค้นหาและดาวน์โหลดไฟล์ที่เกี่ยวข้องด้วยคำสั่ง install
:
$ php composer.phar install
ถ้าคุณติดตั้งแบบใช้ร่วมกันสามารถใช้คำสั่ง:
$ composer install
จากตัวอย่างด้านบน Composer จะดาวน์โหลด
monolog มาไว้ในโฟล์เดอร์ vendor/monolog/monolog
ในโปรเจ็คของคุณ
นอกเหนือไปจากการดาวน์โหลดไฟล์ที่เกี่ยวข้องแล้ว Composer ทำการเตรียมไฟล์สำหรับโหลดอัตโนมัติไว้ด้วย คุณสามารถใช้คุณสมบัตินี้ได้ด้วยการเพิ่มไฟล์ autoload.php
เข้าไปใจไฟล์เริ่มต้นโปรเจ็ค:
require 'vendor/autoload.php';
โว้ววว! ตอนนี้ก็สามารถใช้งาน monolog ได้แล้ว! ต่อไปเริ่มต้นเรียนรู้การใช้งานพื้นฐานได้จากบท "การใช้งานเบื้องต้น"