Composer là gì? Quản lý các thư viện bằng composer

Composer được ra mắt vào ngày 1/3/2012, và kể từ đó đến nay, Composer được phổ biến rất rộng rãi như là công cụ thiết yếu cho những anh em lập trình PHP.

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

Composer là gì?

Composer là một Dependency Management trong PHP, công cụ quản lý các thư viện mà project Php của bạn sử dụng. Một cách chính xác hơn Composer quản lý sự phụ thuộc các tài nguyên trong dự án. Nó cho phép khai báo các thư viện mà dự án của bạn sử dụng, composer sẽ tự động tải code của các thư viện. Nó tạo ra các file cần thiết vào project của bạn, và cập nhật các thư viện khi có phiên bản mới.

Lợi ích của composer

Ý tưởng của composer không phải là mới, nó được lấy cảm hứng từ các công cụ như npm của Node. Phần hoạt động của nó cũng rất giống APT (có trên Ubuntu) hay Yum (có trên CentOS), tuy nhiên composer chỉ ở phạm vi dự án Php chứ không phải trên toàn bộ OS như 2 thằng trên.

Trước đây khi bạn triển khai các dự án dựa trên các, bạn sẽ phải đối mặt một số việc sau:

  • Dự án của bạn có sử dụng một số thư viện ở ngoài. Bạn phải tải chúng rồi cho vào folder của project rồi mới sử dụng được.
  • Một số các thư viện đó lại sử dụng (phụ thuộc) các thư viện khác.
  • Bạn sẽ gặp những khó khăn trong việc cập nhật phiên bản của các thư viện. Nếu thư viện A, có sử dụng thư viện B, thư viện B sử dụng thư viện C. Thì nếu một trong các thư viện này có update, bạn sẽ phải tự mình lần mò về phần gốc của nó để update.

Tuy nhiên, công việc sẽ thật dễ dàng với Composer, bạn sẽ làm được:

  • Khai báo các thư viện mà dự án sử dụng. Quản lý tập trung các thư viện đang sử dụng cho project và cả phiên bản của chúng dễ dàng qua file composer.json.
  • Tìm các phiên bản của package có thể cài đặt và cần thiết cho dự án, sau đó cài đặt chúng vào dự án tức là tải chúng về project.

Sử dụng Composer

Để sử dụng composer, ta cần phải có 1 file composer.json. File này chứa thông tin mô tả các dependencies mà ta cần trong project. Nội dung của file có thể là:

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "require": {
        "laravel/framework": "5.8.*",
},
    ....
}

Các yêu cầu về dependencies sẽ được liệt kê trong key require. Phía trên là 1 ví dụ cho file composer.json mặc định của laravel framework version 5.8. Phần * nghĩa là ta chấp nhận phiên bản update mới như 5.8.11 hay 5.8.12 chẳng hạn.

Bằng cách sử dụng terminal, trong project folder chúng ta thực hiện lệnh composer install. Nó sẽ tìm trong thư mục hiện có file composer.json và thực hiện các công việc mà file đó yêu cầu bao gồm đưa tất cả dependencies vào project và thực hiện các công việc cần thiết khác.

Autoloading

Trong file chính của project, hãy thêm dòng này vào:

include_once './vendor/autoload.php';

Tất cả các package bạn cần bây giờ đã được thêm vào project, sẵn sàng cho bạn sử dụng. Hay như trong Laravel bạn chỉ cần đơn giản gõ:

composer dump-autoload

thì tất cả các thư viện trong composer sẵn sàng để sử dụng trong toàn bộ project.

Cập nhật package

Bạn chỉ cần gõ composer update . Composer sẽ tự động cập nhật các package đang sử dụng. Nếu muốn cập nhật lên các phiên bản mới hơn hoặc các bản release, hãy chỉnh sửa file composer.json

Note: Không bao giờ chạy lệnh composer update trong môi trường production mà hãy kiểm tra trên máy để tránh tình trạng không tương thích.

Kết luận

Composer được sử dụng ở mọi nơi trong thế giới PHP, vì vậy đã là một lập trình viên Php bạn cần trang bị thêm kiến thức cơ bản composer. Sau đó thì chúng ta chỉ cần chuyên tâm vào product và gạt bớt suy nghĩ về việc cập nhật package.

Có thể bạn quan tâm:

Xem thêm việc làm Php mới nhất trên TopDev