Composer là gì ?

Composer là một Dependency Management trong PHP, công cụ quản lý các thư viện mà project của bạ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, tạo ra các file cần thiết vào project của bạn, và update các thư viện nếu cần.

Composer được gọi là Dependency management. Nghĩa là nó giúp bạn quản lý các thư viện, nhưng không giống như Yum hoặc Apt, Nó không cho các project của bạn dùng chung một đoạn code của thư viện, mà ở mỗi project, nó sẽ tải code của thư viện về và bỏ vào thư mục project luôn, nghĩa là nếu project A và B đều dùng chung thư viện tên là LIB_C, thì ở cả project A và project B đều sẽ có hai thư mục code của LIB_C độc lập với nhau.

Composer là một project mà nguồn mở, nghĩa là bạn có thể fork nó và phát triển lại, comtribute cho nó. … Bạn có thể xem mã nguồn của nó ở link bên dưới :

https://github.com/composer/composer

Lợi ích của composer

Ngày xưa, khi không có composer, mỗi khi muốn sử dụng thư viện nào, bạn sẽ phải download code của thư viện đó về, đặt vào thư mục của project và sử dụng. Điều này sinh ra những bất lợi sau :

  • Dung lượng project của bạn sẽ lớn vì cần phải cộng thêm code của các thư viện.
  • Nếu bạn sử dụng git, SVN ( gọi chung là Version control system ) thì khi update các thư viện, bạn phải tạo các commit, mà thực sự các commit đó không phải của bạn.
  • Khó khăn trong việc update version 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ề nguồn cội của nó để update, rất phức tạp.

Composer ra đời để giải quyết các vấn đề này, Với composer, bạn sẽ cần khai báo tên và version của các thư viện mà bạn có sử dụng mà không cần phải tự tay chép code của nó vào project, composer sẽ tự động tìm và tải thư viện mà bạn cần, nếu trong thư viện đó có dùng các thư viện khác thì nó cũng sẽ tải các thư viện khác về, nó đệ quy cho đến khi tải đủ các thư viện.

Khi bạn sử dụng VCS, bạn sẽ chỉ cần commit tên version, tên thư viện ở file composer.json mà không cần phải commit những thay đổi trong code của các thư viện như ngày xưa nữa.

Nếu trong thư viện có sử dụng thư viện khác, và nó update code của các thư viện mà nó sử dụng, thì composer sẽ tự động update giùm bạn luôn, thật tiện lợi.

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

Mình tách phần cài đặt composer ra thành một bài viết riêng để cho các bạn tiện theo dõi :

http://hoclaptrinh.vn/posts/huong-dan-cai-dat-composer

Viết câu trả lời

Drop Images