HomeKIẾN THỨCComposer là gì

Composer là gì

16:23, 13/10/2021

Composer là gì ?

Composer là công cụ để quả lý package hay library PHP. Composer sẽ cài đặt những libraries vào một thư mục nào đó nằm bên trong project bạn đang làm việc.

Bạn đang xem: Composer là gì

Về cơ cản, Composer sẽ không cài đặt global. Chính vì thế nó còn được gọi là Dependency Manager. (Những package được cài đặt được gọi là Dependency, còn Composer là công cụ quản lý các Dependency)

Khi nói đến đây chắc bạn sẽ thấy Composer rất giống với bundler của Ruby, hay npm của Node. Vâng, nó là một công cụ tương tự như thế, được sinh ra dành cho PHP.

Cài đặt Composer

Composer là công cụ dành cho PHP, thế nên đương nhiên nó đòi hỏi bạn phải cài đặt PHP từ trước. Composer phiên bản hiện tại yêu cầu phiên bản PHP >= 5.3.2

Thông tin chi tiết về hướng dẫn cài đặt Composer có thể xem ở trang web http://getcomposer.com

Nhìn chung, bạn chỉ cần chạy duy nhất một câu lệnh như sau:

curl -sS https://getcomposer.org/installer | phpCâu lệnh trên sẽ build ra một file composer.phar, và bạn có thể chạy lệnh của composer bằng cách dùng lệnh

php composer.pharBạn nên rename và đưa file composer.phar đó vào thư mục bin để có thể gọi lệnh composer global và dễ dàng hơn.

mv composer.phar /usr/local/bin/composer

composer.json và composer.lock

Đây là 2 file rất quan trọng trong một package composer.

composer.json là nơi ta khai báo những dependencies dùng trong project, những thông tin về tên, phiên bản, licenses, source … Nội dung được viết theo JSON format.

Chẳng hạn như ta có một ví dụ sau:

{ "name": "wataridori/bphalcon", "type": "project", "description": "A small library which implement some features to phalcon", "license": "GPL-3.0", "authors": < { "name": "Tran Duc Thang", "email": "" } >, "require": { "php": ">=5.4" }}composer.lock là nơi lưu trữ thông tin về dependencies đã được cài đặt. Ví dụ khi bạn dùng lệnh install để cài đặt lần đầu thì composer sẽ đọc thông tin về dependencies ở trong file composer.json, sau đó cài đặt và tạo ra file composer.lock để lưu thông tin cụ thể về những dependencies đó. Giả sử bạn commit cả 2 file composer.json và composer.lock vào version control của mình, rồi bất cứ người nào tải code về thì dù có cài đặt vào thời điểm khác nhau đi chăng nữa thì vẫn sẽ nhận được những dependencies với những version giống nhau, do nó được đọc từ file composer.lock, chứ không phải file composer.json.

Hãy đi vào một trường hợp cụ thể hơn. Trong file composer.json có ghi yêu cầu là package/A có version >= 3.4.5, và khi bạn cài lần đầu, version mới nhất của nó là 3.4.5 thì package/A với version 3.4.5 sẽ được cài đặt và thông tin được lưu vào file composer.lock. Sau đó người khác tải code về, và cài đặt dependencies thì mặc dù lúc đó package/A có ra version 3.4.6 đi chăng nữa thì composer vẫn sẽ chỉ cài đặt bản 3.4.5 mà thôi, do thông tin này đã được lưu trong composer.lock.

Packagist

Packagist là repository chính để lưu những thông tin về composer package. Bạn có thể vào trang web của packagist để tìm kiếm những library cần thiết và cài đặt chúng một cách nhanh chóng và dễ dàng thông qua composer, hoặc bạn cũng có thể tự tạo một package và chia sẻ với cộng đồng thông qua trang https://packagist.org .

Xem thêm: Tên Thật Của Thành Long Hay Và Nổi Tiếng Nhất Trong Sự Nghiệp Điện Ảnh

Các câu lệnh của Composer

Các Global Option

–verbose (-v): Hiện message dài

–help (-h): Hiện thông tin help

–quiet (-q): Không xuất ra message gì trong khi chạy câu lệnh

–no-interaction (-n): Không hỏi gì trong khi chạy câu lệnh

–working-dir (-d): Thiết lập working dir chỉ định

–profile: Hiển thị thời gian và memory được sử dụng

–ansi: Xuất kết quả với encoding là ANSI

–no-ansi: Dừng việc xuất kết quả với encoding là ANSI

–version (-V): Hiển thị version hiện tại của Composer

Các câu lệnh

init : Tạo ra file composer.json nhằm khai báo các thông tin cho package

install : Đọc thông tin từ file composer.json tại thư mục đang đứng, tổng hợp các package cần cài đặt, và cài đặt chúng vào một thư mục nào đó bên trong project.

update : Update những dependencies đã được cài đặt lên version mới nhất, đồng thời update nội dung vào file composer.lock

require : Add hoặc thay đổi nội dung một requirement vào file composer.json. Sau đó package được add vào hoặc thay đổi sẽ được cài đặt hoặc update.

global : Là command cho phép ta thực hiện các command khác như install, update một cách global. Tuy nhiên câu lệnh global yêu cầu ta phải chạy từ thư mục COMPOSER_HOME

show : Hiện ra những package khả dụng. Ngoài ra nếu đưa thêm tham số là tên package ở cuối thì sẽ hiện ra thông tin về package đó.

depends : Thông tin về những package nào phụ thuộc vào package nào

validate : Kiểm tra xem nội dung file composer.json có hợp hệ hay không

status : Check xem có gì được thay đổi ở bên trong dependencies (do mình thực hiện) hay không.

self-update : Update bản thân composer

config : Chỉnh sửa các setting cơ bản

create-project : Tạo ra một project từ package đã có sẵn. (chẳng hạn như bạn muốn deploy một package là một application, hay muốn develop tiếp từ một package đã có …)

dump-autoload : Update autoloader khi có khi có class mới tong classmap package.

licenses : Hiện thị tên và version của tưng license cho từng package được install.

run-script : Dùng để chạy script một cách thủ công

diagnose : Check xem có vấn đề gì với composer hay không

archive : Tạo ra một file nén (zip hoặc tar) cho một package ở một version chỉ định

help : Hiện thị thông tin về một câu lệnh nào đó

Một ví dụ composer"s package

Cài đặt:

composer create-project wataridori/bphalcon install_pathChú ý: Phiên bản Composer được sử dụng làm ví dụ hay giải thích ở trên là phiên bản mới nhất tại thời điểm thực hiện bài viết.