Bài 01: Composer là gì?
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, tức là ví dụ bạn có PROJECT A và PROJECT B thì nếu bạn cần thư viện LIB X thì khi cài đặt thư viện LIB X sẽ được thêm ngay vào trong từng thư mục PROJECT A và PROJECT B.
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.
Bài viết này được đăng tại [free tuts .net]
2. Tại sao lại cần Composer ?
Như mình đã nói ở trên Composer ra đời để giải quyết các vấn đề khó khăn như dung lượng project sẽ lơn hơn, việc cập nhật cũng như chèn vào project rất phức tạp và phiền phức. 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 trên Server, 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, thật tuyệt vời phải không nào.
Khi bạn sử dụng VCS, bạn sẽ chỉ cần commit tên version, tên thư viện ở file cấu hình composer.json mà không cần phải commit những thay đổi trong code của các thư viện như trước. Mặt khác, khi trong project của bạn có các thư viện mà các thư viện ấy lại dùng thư viện khác và khi đó chỉ cần một trong những cái đó có update thì composer sẽ tự động update giùm bạn luôn, thật tiện lợi quá đi mà.
3. 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ệnhcomposer
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 hoặc xem video này.
-
Xong bây giờ bạn có thể mở CMD và đánh vào câu lệnh sau để kiểm tra: composer -v
4. Lời kết
Composer giúp lập trình viên giảm bớt suy nghĩ về các thư viện và chỉ tập trung vào ứng dụng chính của mình. Tiết kiệm khá nhiều thời gian để làm những việc khác. Hiện tại, hầu hết các Framework đều hỗ trợ Composer, như : CodeIgniter, Symfony2, Laravel, FuelPHP… Hi vọng qua bài viết này sẽ giúp bạn có thêm một công cụ hữu ích khi làm việc với PHP.
Bài viết được đóng góp bởi Đinh Quốc Hân.