Làm thế nào để cài đặt và sử dụng Composer

Blog • 11/10/2018 • 99 Lượt xem

Trước khi Composer ra đời, chúng ta thường khó chịu với hàng tá các thư viện của bên thứ ba cần phải quản lý, rất khó khăn để cập nhật và còn lại các khâu cài đặt lằng quằng. Đó là quá khứ thôi, sự ra đời của Composer đã làm thay đổi hoàn toàn mọi thứ rồi. Trong bài viết này chúng ta sẽ tìm hiểu về Composer thực chất nó là gì.

1. Composer là gì ?

Composer là một công cụ quản lý các thư viện trong PHP (Dependency Management), công cụ này giúp ta tiết kiệm khá nhiều thời gian với các gói thư việ cần thiết mà project của bạn cần sử dụng, bạn chỉ cần khai báo nó, composer sẽ tự động tải code của các thư viện về thông qua một server cộng đồng.

Composer giúp ta quản lý thư viện một cách chuyên biệt từng project không giống như APT hay YUM (linux) dùng chung mà nó tương tự như npm của NodeJS.

Composer là một mã nguồn mở (OpenSource) nên được cộng đồng hỗ trợ rất nhiều, bạn có thể tham gia phát triển, phát triển lại từ trang Github chính thức của Composer.

2. Hướng dẫn cài đặt Composer

Để cài được composer vào máy bạn cần phải cài đặt sẵn PHP 5.3.2+, và nên cài sẳn Git để hỗ trợ tốt hơn với các gói thư viện. Composer hỗ trợ tốt trên ba nền tản OS X, Windows và cả Linux.

# Composer Trên Linux / Unix / OSX

bạn mở Terminal lên và nhập lần lượt từng dòng lệnh sau:

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');"

Hoặc bạn có thể download composer.phar từ https://getcomposer.org/ (ở cuối trang) sau đó duy chuyển nó vào trong thư mục bin bằng lệnh:

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

# Composer Trên Windows

Có 2 cách cài đặt Composer trên Windows:

  • Cài tự động là cách cài dễ dàng nhất, bạn chỉ việc tải về Composer-setup.exe tại https://getcomposer.org/ sau đó cài như một phần mềm bình thường (nhớ trỏ đến php.exe đã cài sẵn trên máy tính đúng chỗ). Composer Installer sẽ tự động cài và thêm vào PATH sẵn cho bạn để bạn có thể dùng lệnh composer trên CMD.
  • Cài thủ công hơi dài dòng một tí:
  • Như ở trên, bạn tải về composer.phar từ https://getcomposer.org/ (ở cuối trang) sau đó duy chuyển nó vào trong thư mục bất kỳ bạn muốn, ở đây tớ ví dụ là C:\bin nhé.

  • Bạn tạo tập tin có tên là composer.bat với nội dung như sau:

  • echo @php "%~dp0composer.phar" %*>composer.bat
  • Để dùng được lệnh composer trên CMD bạn cần phải thêm thư mục Composer vào PATH environment variable. Bạn có thể xem cách thực hiện bằng Google

Xong bây giờ bạn có thể mở CMD và đánh vào câu lệnh sau để kiểm tra: composer -v

3. Kích hoạt và hiểu composer.json

Có hai phần riêng biệt để quản lý dependencies bằng Composer. Đầu tiên là command line tool của Composer cho việc nắm giữ và quản lý các dependencies. Thứ hai là Packagist – Đây là nơi lưu trữ các package mà bạn muốn sử dụng.

Khi sử dụng Composer trong thư mục gốc chúng ta có một tập tin JSON là composer.json có nội dung:

{
    "name": "project/my_project",
    "description": "My New Project",
    "authors": [
    {
        "name": "Nguyen Thanh",
        "email": "[email protected]"
    }],
    "require": {
        "monolog/monolog": "1.12.0"
    }
}

Trong tập tên trên có các phần như sau:

  • name tên dự án có dạng vendor_name/package_name.
  • description mô tả gói của bạn.
  • authors tác giả của dự án.
  • require đây chính là danh sách các package thư viện cần thiết, nó sẽ lấy từ server về. sẽ có 2 phần là tên vendor/ tên gói cùng với chỉ định version hay không.

Chúng ta vào Terminal tại thư mục hiện tại với câu lệnh:

composer install

Nó sẽ đưa tất cả dependencies của dự án vào thư mục mang tên vendor và thực hiện các công việc cần thiết khác. Cùng lúc đó nó sẽ tạo ra file composer.lock để biết là composer đã được thiết lặp tại thư mục mình sẽ nói cái này ở dưới. và các bạn hãy kiểm tra thử thư mục vendor xem ắt hẳn các thư viện đã được tải về và một file autoload.php.

Ngay lúc này, để sử dụng được các thư viện đó bạn chỉ viện chèn autoload.php vào file cần thiết:

require "vendor/autoload.php";

Sau đó làm theo hướng dẫn sử dụng của Package đó là xong