Skip to content

Latest commit

 

History

History
137 lines (82 loc) · 12.9 KB

00-intro.md

File metadata and controls

137 lines (82 loc) · 12.9 KB

แนะนำ

Composer เป็นเครื่องมือสำหรับบริหารจัดการซอร์ซโค้ด (PHP) ที่เกี่ยวที่คุณนำมาใช้ใชโปรเจ็ค (Dependency Management --PHP) โดยที่คุณแค่กำหนดค่าแพคเก็จ ​(​Library) ที่คุณต้องการใช้งานไว้ในไฟล์คอนฟิก Composer จะดาวโหลดและติดตั้งเข้าไปในโปรเจ็คคุณให้เอง ... ว้าววว ;)

เครื่องมือจัดการส่วนที่เกี่ยวข้อง (Dependency Manager)

จริงๆแล้ว 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 จะออกไปค้นหาเวอร์ชั่นของแพคเก็นที่ต้องติดตั้ง และจะติดตั้งมันให้ (แปลว่ามันจะต้องไปดาวน์โหลดมาติดตั้ง)

การกำหนดส่วนที่เกี่ยวข้อง (Declaring dependencies)

ลองดูกัน, ตอนที่คุณสร้างโปรเจ็คใหม่ขึ้นมาซักอัน และก็ต้องการใช้ไลบรารี่ที่ทำหน้าที่เก็บล็อกไฟล์ (Loggin) สมมุติว่าคุณเลือกใช้ monolog คุณก็ต้องเพิ่มมันเข้าไปในโปรเจ็คของคุณ, การใช้ Composer คุณก็แค่เพิ่มรายชื่อมันเข้าไปในรายการของไฟล์ composer.json ซึ่งใช้บอกรายลเอียดส่วนที่เกี่ยวข้องที่คุณต้องใช้ในโปรเจ็ค เช่น

{
    "require": {
        "monolog/monolog": "1.2.*"
    }
}

นี่คือการบอกว่าโปรเจ็คของคุณต้องการใช้แพคเก็จ (require) monolog/monolog, โดยระบุเบอร์ชั่นที่ขึ้นต้นด้วย 1.2

ความต้องการของระบบ (System Requirements)

Composer ทำงานบน PHP 5.3.2+ (ขึ้นไป) มีอีกหลายๆ อย่างที่ต้องกำหนดค่าใน PHP และการคอมไพล์ ตอนที่คุณติดตั้ง Composer จะแจ้งเตือนคุณเองว่าอะไรบ้างที่เข้ากันได้หรือไม่ได้

การติดตั้ง Composer จากซอร์ซโคด (ไม่ใช่การติดตั้งจากไฟล์ zip) คุณต้องมี git, hg หรือ svn ติดตั้งไว้ในเครื่องด้วย (เหล่านี้คือเครื่องมือจัดการเวอร์ชั่นหรือ Version control)

Composer ใช้งานได้แบบ multi-platform และใช้งานเหมือนกันหมดทั้ง Windows, Linux and OSX.

การติดตั้ง (Installation - *nix)

การดาวน์โหลดตัวติดตั้ง

แบบใช้เฉพาะโปรเจ็ค (Locally)

การใช้ 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

แบบใช้ร่วมกัน (Globally)

คุณสามารถวางไฟล์นี้ไว้ตรงไหนก็ได้ (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

แบบใช้งานร่าวมกัน (Globally) บน OSX ด้วย homebrew

Composer เป็นส่วนหนึ่งของโปรเจ็ค homebrew-php

  1. เพิ่ม (Tap) homebrew-php repository เข้าในการติดตั้งของ brew ด้วยคำสั่ง: brew tap josegonzalez/homebrew-php
  2. พิมพ์คำสั่งติดตั้ง brew install josegonzalez/php/composer.
  3. ใช้งาน Composer ด้วยคำสั่ง composer

หมายเหตุ: ถ้ามีความผิดพลาดเกี่ยวกับ PHP53 หรือสูงกว่า ให้ใช้คำสั่งนี้ brew install php53-intl

การติดตั้งบน Windows

ใช้ตัว Installer

นี่เป็นวิธีที่ง่ายที่สุดที่ใช้ในการติดตั้ง 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 สำหรับการจัดการไฟล์ที่เกี่ยวข้องในโปรเจ็คของเราได้แล้ว ถ้าคุณยังไม่มีไฟล์ composer.json อยู่ในโปรเจ็คให้ข้ามไปอ่านที่บท การใช้งานเบื้องต้น

ค้นหาและดาวน์โหลดไฟล์ที่เกี่ยวข้องด้วยคำสั่ง install:

$ php composer.phar install

ถ้าคุณติดตั้งแบบใช้ร่วมกันสามารถใช้คำสั่ง:

$ composer install

จากตัวอย่างด้านบน Composer จะดาวน์โหลด monolog มาไว้ในโฟล์เดอร์ vendor/monolog/monolog ในโปรเจ็คของคุณ

การโหลดไฟล์อัตโนมัติ (Autoloading)

นอกเหนือไปจากการดาวน์โหลดไฟล์ที่เกี่ยวข้องแล้ว Composer ทำการเตรียมไฟล์สำหรับโหลดอัตโนมัติไว้ด้วย คุณสามารถใช้คุณสมบัตินี้ได้ด้วยการเพิ่มไฟล์ autoload.php เข้าไปใจไฟล์เริ่มต้นโปรเจ็ค:

require 'vendor/autoload.php';

โว้ววว! ตอนนี้ก็สามารถใช้งาน monolog ได้แล้ว! ต่อไปเริ่มต้นเรียนรู้การใช้งานพื้นฐานได้จากบท "การใช้งานเบื้องต้น"

Basic Usage