Composer là gì? Hướng dẫn cài đặt và sử dụng Composer PHP từ A-Z
Composer là công cụ quản lý thư viện mạnh mẽ trong PHP, giúp tự động cài đặt, cập nhật và đồng bộ dependencies cho dự án.
- Composer là gì? Composer PHP là gì?
- Lợi ích của Composer
- Các yếu tố quan trọng đối với Composer
- composer.json và composer.lock
- Packagist là gì?
- Cách sử dụng Composer
- Tạo file composer.json
- Cài đặt dependencies
- Autoloading
- Cập nhật package
- Cách cài đặt Composer
- Yêu cầu hệ thống
- Trên Windows
- Trên Linux / Unix / macOS
- Các câu lệnh của Composer
- Global Options (Tùy chọn toàn cục)
- Các câu lệnh thường dùng
- Lời kết

Composer là gì? Composer PHP là gì?
Composer là một công cụ Dependency Management (quản lý phụ thuộc) dùng để quản lý các thư viện mà dự án PHP của bạn phụ thuộc vào. Cụ thể, Composer sẽ giúp theo dõi, cài đặt và cập nhật các gói mã nguồn, thư viện cần thiết cho project.
Với Composer, bạn có thể khai báo và chỉ định các thư viện cần thiết. Công cụ này sẽ tự động tải mã code, tạo ra các file cần thiết để sử dụng trong project. Composer cũng hỗ trợ cập nhật thư viện khi có phiên bản mới để đảm bảo mọi thứ luôn hoạt động tối ưu.
Lợi ích của Composer
Composer được lấy cảm hứng từ các công cụ như npm (Node.js), APT (Ubuntu) và Yum (CentOS), nhưng chỉ tập trung vào quản lý thư viện PHP trong phạm vi dự án.
Trước khi Composer xuất hiện, người lập trình gặp nhiều khó khăn:
- Phải tải thư viện bên ngoài và thêm vào project thủ công, dễ lỗi.
- Khó quản lý các thư viện phụ thuộc lẫn nhau, đặc biệt khi cập nhật.
Với Composer, mọi thứ trở nên đơn giản hơn:
- Khai báo thư viện sử dụng trong file
composer.json
- Quản lý phiên bản rõ ràng
- Cài đặt và đồng bộ dễ dàng
Các yếu tố quan trọng đối với Composer
composer.json và composer.lock
Đây là 2 file trung tâm của dự án dùng Composer.
composer.json
: khai báo các dependencies (thư viện phụ thuộc), bao gồm tên, phiên bản, license...composer.lock
: lưu thông tin chi tiết các gói đã được cài đặt (phiên bản cụ thể) để đảm bảo mọi người làm việc cùng một phiên bản giống nhau.
Ví dụ composer.json:
{ "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": "thangtd90@gmail.com" } ], "require": { "php": ">=5.4" } }
composer.lock sẽ ghi nhận phiên bản chính xác đã cài. Ví dụ: yêu cầu >=3.4.5
, Composer cài 3.4.5
(mới nhất thỏa mãn), và ghi lại vào composer.lock
. Lần sau, vẫn sẽ dùng đúng bản 3.4.5
để đảm bảo đồng bộ môi trường làm việc.

Packagist là gì?
Packagist là kho lưu trữ chính thức của Composer. Tại đây, bạn có thể tìm kiếm, chia sẻ, hoặc tải về các package PHP.
Người dùng có thể:
- Tìm kiếm thư viện
- Cài đặt vào project bằng Composer
- Tự tạo và publish package lên cho cộng đồng sử dụng
Cách sử dụng Composer
Tạo file composer.json
Trước tiên, bạn cần có file composer.json
để Composer biết được các thư viện nào cần cài đặt.
Ví dụ:
{ "name": "laravel/laravel", "description": "The Laravel Framework.", "keywords": ["framework", "laravel"], "license": "MIT", "require": { "laravel/framework": "5.8.*" } }
Dấu *
trong phiên bản 5.8.*
nghĩa là chấp nhận tất cả phiên bản trong chuỗi 5.8 (ví dụ: 5.8.11, 5.8.12,…)
Cài đặt dependencies
Dùng terminal hoặc dòng lệnh:
composer install
Lệnh này sẽ tìm composer.json
và tự động cài các thư viện được yêu cầu.
Autoloading
Trong file PHP chính của dự án, thêm dòng sau:
include_once './vendor/autoload.php';
Nếu bạn cần tạo lại file autoload sau khi thêm class, dùng lệnh:
composer dump-autoload
Sau khi autoload được cập nhật, toàn bộ package đã cài sẽ sẵn sàng để sử dụng trong dự án.
Cập nhật package
Để cập nhật toàn bộ package:
composer update
Nếu muốn cập nhật lên version mới hơn, hãy sửa composer.json
rồi chạy lại lệnh trên.
Lưu ý:
Không nên chạy composer update
trong môi trường production, vì có thể làm thay đổi các thư viện, gây lỗi hoặc mất ổn định hệ thống. Hãy kiểm tra trước ở local/dev để đảm bảo an toàn.
Cách cài đặt Composer
Yêu cầu hệ thống
- PHP >= 5.3.2
- Git (để hỗ trợ tải các package)
Trên Windows
Cách 1: Cài đặt tự động
- Tải file
Composer-Setup.exe
tại https://getcomposer.org/ - Cài đặt như phần mềm thông thường
- Composer sẽ tự thêm vào PATH để sử dụng qua CMD
Cách 2: Cài đặt thủ công
- Tải
composer.phar
tại website - Di chuyển file vào thư mục mong muốn
- Tạo file
composer.bat
với nội dung:
@php "%~dp0composer.phar" %*
- Thêm đường dẫn thư mục vào
PATH
- Mở CMD, chạy lệnh:
composer -v
Trên Linux / Unix / macOS
Cách 1: Dùng curl và chuyển file vào thư mục global
curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer
Cách 2: Cài đặt thông qua dòng lệnh
sudo php -r "readfile('https://getcomposer.org/installer');" > composer-setup.php sudo php composer-setup.php --install-dir=bin sudo php -r "unlink('composer-setup.php');"
Các câu lệnh của Composer
Global Options (Tùy chọn toàn cục)
--verbose
(-v
): Hiển thị chi tiết khi thực thi lệnh--help
(-h
): Hiển thị trợ giúp--quiet
(-q
): Ẩn tất cả thông báo--no-interaction
(-n
): Không yêu cầu xác nhận khi thực thi--working-dir
(-d
): Thiết lập thư mục làm việc--profile
: Hiển thị thời gian và bộ nhớ sử dụng--ansi
: In kết quả với mã hóa ANSI--no-ansi
: Không sử dụng mã hóa ANSI--version
(-V
): Hiển thị phiên bản Composer hiện tại
Các câu lệnh thường dùng
init
: Tạo filecomposer.json
để khai báo thông tin packageinstall
: Cài đặt các package trongcomposer.json
và cập nhậtcomposer.lock
require
: Thêm/chỉnh sửa package mới vàocomposer.json
và cài đặt ngayglobal
: Cài đặt các package trên toàn hệ thống, không chỉ riêng project hiện tạisearch
: Tìm kiếm package trong local hoặc Packagistshow
: Hiển thị danh sách package đang cài hoặc thông tin chi tiếtdepends
: Hiển thị thông tin phụ thuộc giữa các packagevalidate
: Kiểm tra tính hợp lệ của filecomposer.json
status
: Kiểm tra các thay đổi với dependenciesself-update
: Cập nhật phiên bản Composerconfig
: Thiết lập các cấu hìnhcreate-project
: Tạo một project từ package sẵn códump-autoload
: Cập nhật autoloader khi có thay đổi classlicenses
: Hiển thị giấy phép các package đang dùngrun-script
: Chạy một script thủ công đã định nghĩadiagnose
: Kiểm tra vấn đề đang xảy ra với Composerarchive
: Tạo file nén (zip/rar) cho một packagehelp
: Hiển thị thông tin chi tiết về một lệnh cụ thể
Lời kết
Như vậy, bạn đã nắm rõ Composer là gì, lợi ích của nó, cách cài đặt, sử dụng, quản lý thư viện cũng như các lệnh quan trọng. Composer đã trở thành công cụ không thể thiếu với lập trình viên PHP hiện đại nhờ khả năng quản lý dependencies nhanh, chuẩn và linh hoạt.