Định nghĩa về composer
Composer là trình quản lý phụ thuộc cấp ứng dụng cho ngôn ngữ lập trình PHP cung cấp định dạng chuẩn để quản lý các phụ thuộc của phần mềm PHP và các thư viện cần thiết . Nó được phát triển bởi Nils Adermann và Jordi Boggiano, những người tiếp tục quản lý dự án. Họ bắt đầu phát triển vào tháng 4 năm 2011 và phát hành lần đầu tiên vào ngày 1 tháng 3 năm 2012. Composer lấy cảm hứng mạnh mẽ từ ” npm ” của Node.js và ” bundler ” của Ruby. Thuật toán giải quyết phụ thuộc của dự án bắt đầu là một cổng dựa trên PHP của trình giải SAT libzypp của openSUSE .
Composer chạy từ dòng lệnh và cài đặt các phụ thuộc (ví dụ thư viện) cho một ứng dụng. Nó cũng cho phép người dùng cài đặt các ứng dụng PHP có sẵn trên “Packagist” là kho lưu trữ chính của nó chứa các gói có sẵn. Nó cũng cung cấp khả năng tự động tải cho các thư viện chỉ định thông tin tự động tải để dễ dàng sử dụng mã của bên thứ ba.
Ưu điểm của composer
Composer là trình quản lý các phần phụ thuộc, khởi tạo các ứng dụng, phần phụ thuộc miễn phí. Composer được đánh giá là tối ưu trong việc quản lý các trình phụ thuộc, như quá trình tải, nâng cấp, xóa bỏ hoặc tải theo phiên bản. Composer sử dụng trình quản lý tải được tối ưu.
Tối ưu hóa trình tải tự động với composer
Theo mặc định, trình tự động tải Composer chạy tương đối nhanh. Tuy nhiên, do cách thiết lập các quy tắc tự động tải PSR-4 và PSR-0, trình tự động tải cần kiểm tra hệ thống tệp trước khi giải quyết một tên lớp một cách dứt khoát. Điều này làm chậm mọi thứ lại khá nhiều, nhưng lại tiện lợi trong môi trường phát triển vì khi bạn thêm một lớp mới, bạn có thể phát hiện/sử dụng ngay mà không cần phải xây dựng lại cấu hình trình tự động tải.
Tuy nhiên, vấn đề là trong quá trình sản xuất, bạn thường muốn mọi thứ diễn ra nhanh nhất có thể vì bạn có thể xây dựng lại cấu hình mỗi khi triển khai và các lớp mới không xuất hiện ngẫu nhiên giữa các lần triển khai.
Vì lý do này, Composer cung cấp một số chiến lược để tối ưu hóa trình tải tự động.
Class map generation về cơ bản chuyển đổi các quy tắc PSR-4/PSR-0 thành các quy tắc classmap. Điều này làm cho mọi thứ nhanh hơn nhiều vì đối với các lớp đã biết, class map trả về đường dẫn ngay lập tức và Composer có thể đảm bảo lớp nằm trong đó nên không cần kiểm tra hệ thống tệp.
Trên PHP 5.6+, class map cũng được lưu trong opcache giúp cải thiện đáng kể thời gian khởi tạo. Nếu bạn đảm bảo opcache được bật, thì class map sẽ tải gần như ngay lập tức và sau đó việc tải class sẽ nhanh hơn.
Yêu cầu các nền tảng phụ thuộc trong Composer.
Để tránh xung đột, Composer cung cấp thông tin về môi trường mà Composer chạy dưới dạng các gói ảo. Điều này cho phép các gói khác xác định các phụ thuộc ( yêu cầu , xung đột , cung cấp , thay thế ) trên các khía cạnh khác nhau của nền tảng, như PHP, tiện ích mở rộng hoặc thư viện hệ thống, bao gồm các ràng buộc phiên bản.
Khi bạn yêu cầu một trong các gói nền tảng, không có mã nào được cài đặt. Số phiên bản của các gói nền tảng được lấy từ môi trường Composer được thực thi và chúng không thể được cập nhật hoặc xóa. Tuy nhiên, chúng có thể được ghi đè cho mục đích giải quyết sự phụ thuộc bằng cấu hình nền tảng .
Hỗ trợ nhiều nền tảng phổ biến.
Các ứng dụng, nền tảng được hỗ trợ cài đặt từ composer bao gồm:
- Symfony
- Laravel
- CodeIgniter
- CakePHP
- FuelPHP
- Drupal
- TYPO3
- Neos
- SilverStripe
- Magento
- OpenMage
- Yii
- Laminas
- Silex
- Lumen
- Adianti
Ngoài ra bạn có thể tải wordpress từ composer.