Composer Là Gì

Kể từ Lúc desgin vào ngày 1 tháng 3 năm 2012, Composer đang trnghỉ ngơi buộc phải thông dụng rộng thoải mái vì sẽ mang về một đồ vật hết sức quan trọng mang lại PHP: quản lý dependency. Composer về cơ bạn dạng là một trong những phương pháp để pull toàn bộ những ứng dụng của mặt lắp thêm tía nlỗi frameworks CSS, plugin jQuery và các phần mềm khác vào dự án công trình của người sử dụng.

Bạn đang xem: Composer là gì

Đang xem: Composer là gì

Tuy nhiên, rất có thể chúng ta đã / vẫn cần sử dụng Composer bởi vì ích lợi nhưng mà nó đem đến nhưng chưa một lần từng quay lại tìm hiểu coi đúng đắn Composer là gì với nó làm cái gi. Vậy thì sinh hoạt bài xích này mình đang cùng mày mò giải pháp Composer hoạt động như thế nào.

Composer là gì?

Composer là một trong những qui định nhằm quản lý dependency vào PHP. Nó có thể chấp nhận được bạn knhì báo những thỏng viện cơ mà dự án của chúng ta yêu cầu và nó đã làm chủ (thiết lập đặt/cập nhật) chúng cho chính mình.

Composer không nên là mức sử dụng cai quản package nlỗi Yum hoặc Apt. Nó liên quan cho “package” hoặc thư viện, tuy nhiên nó cai quản chúng bên trên cơ sở từng dự án công trình, setup bọn chúng trong một thư mục (ví dụ: vendor) trong dự án công trình của chúng ta. Theo khoác định, nó ko cài đặt bất kể sản phẩm công nghệ gì global. Tuy nhiên, nó cung ứng một project “global” nhằm dễ ợt trải qua global command.

Ý tưởng này không hẳn là mới với Composer được truyền cảm hứng mạnh bạo vì chưng npm của node cùng bundler của ruby.

Giả sử:

quý khách gồm một dự án công trình phụ thuộc vào một vài tlỗi viện.Một số tlỗi viện nhờ vào vào các tlỗi viện không giống.

Composer:

Cho phxay bạn khai báo những thư viện cơ mà chúng ta phụ thuộc vào.Tìm ra phiên phiên bản làm sao của package làm sao có thể / rất cần phải thiết đặt, cùng setup chúng (có nghĩa là nó sở hữu chúng nó vào dự án của bạn).Dependency management

Có nhì phương pháp để quản lý dependency cùng với Composer. Thứ nhất là chính Composer, một hiện tượng comm& line để tích lũy và làm chủ những dependency. Thứ đọng nhì là Packagist – kho lưu trữ tổng hòa hợp chủ yếu. Đây là nơi các package các bạn (bao gồm thể) mong mỏi sử dụng được lưu trữ.

khi thực hiện Composer, có thể các bạn sẽ thân quen với một file JSON là composer.json. Cơ bản thì nó sẽ trông cố này:

“name”: “laravel/laravel”, “description”: “The Laravel Framework”, “keywords”: , “license”: “MIT”, “require”: “monolog/monolog”: “1.12.0” Các package trải nghiệm của dự án của bạn sẽ được liệt kê vào phần require. Trong ngôi trường thích hợp này, mình đã require Monolog, một framework để ghi log. Sử dụng terminal, trong tlỗi mục dự án chạy lệnh composer install, nó vẫn thiết lập toàn bộ package được tư tưởng trong tệp tin composer.json vào tlỗi mục vendor của dự án công trình và làm cho một trong những điều khác (sẽ luận bàn mặt dưới).

Thư mục vendor sẽ được tạo thành cất tất cả các dependency – bao gồm cả chính composer. Dường như, monolog với psr (dependency của monolog) cũng được thêm vào trong 1 tệp tin không giống là composer.lochồng.

Chỉ định phiên bản

Có 6 phương pháp để chỉ định phiên phiên bản vào tệp tin composer.json:

Các toán thù tử >, , >=, với !=. Ví dụ >2.7 có nghĩa là bất kì phiên bản vào bên trên 2.7, >2.7 tức thị bất kể phiên bạn dạng nào bên trên 2.7 cùng dưới 3.5, bao gồm cả 3.5.

Xem thêm: Ngủ Mơ Thấy Đốt Vàng Mã Là Điềm Gì? Giải Thích Điềm Báo Mơ Thấy Đốt Vàng Mã Nên Đánh Con Số Nào Trúng Lớn

2.3.* đang bao gồm tất cả phiên bản làm sao to hơn bằng 2.3.0 với bé dại rộng bằng 2.4.0. Nó tương tự với >=2.3.0

2.0.0 – 3.0.0 có nghĩa là bất kỳ phiên bản vào to hơn bằng 2.0.0 và nhỏ tuổi hơn bởi 3.0.0. Nó tương tự cùng với >=2.0.0

~3.6 có thể chấp nhận được tất cả phiên phiên bản lớn hơn bởi 3.6, tuy thế không bao gồm từ bỏ 4.0 trlàm việc lên. Nó tương đương với >=3.6 .

Toán tử^, theo document của composer thì có vẻ ngùng ngoằng, tuy thế nói đơn giản dễ dàng thì nó được cho phép toàn bộ phiên bản trung tâm nhì phiên bạn dạng thiết yếu liền kề nhau (ví dụ 1. cùng 2.). Ví dụ ^1.2.3 sẽ có thể chấp nhận được toàn bộ phiên bản thân 1.2.3 cùng 2.0.0, nó tương tự với >=1.2.3 . Toán tử ^ được recommkết thúc Lúc dùng để làm viết code tệp tin composer.json.

dev-master, lúc hướng dẫn và chỉ định dev-master bạn sẽ nhận ra phiên bản mới nhất đang rất được trở nên tân tiến nhưng mà không được thêm số phiên phiên bản.

composer.json và composer.lock

Để giải thích thì tương đối lâu năm, bạn cũng có thể đọc qua bài xích này nhằm hiểu về compser.json cùng composer.lock gồm nhiệm vụ khác biệt núm như thế nào.

TL;DR:

composer.json chỉ liệt kê dependency, không những định ví dụ version package sẽ được install, composer.loông chồng là nơi chỉ định và hướng dẫn version như thế nào được install Lúc chạy composer install.composer.json được dùng làm chạy composer install lần trước tiên, composer.loông chồng được tạo thành sau đó, lưu trữ phiên phiên bản đã được cài đặt. Sau lúc đã bao gồm composer.loông xã, composer đã sử dụng composer.lochồng để khẳng định phiên phiên bản cài đặt mà không sử dụng composer.json nữa.Dùng composer.loông chồng nhằm bảo đảm an toàn version package của các thành viên vào đội là như là nhau.Cơ chế cađậy của composer

Composer tất cả một nguyên tắc nhằm lưu cache những dependency khi thiết đặt, vấn đề đó góp bớt thời hạn khi chạy lại câu lệnh install. cũng có thể chúng ta đã có lần gặp warning này của Composer khi chạy composer install:

Do not run Composer as root/super user! See https://getcomposer.org/root for detailsĐiều này xẩy ra khi chúng ta chạy composer install cùng với câu lệnh suvị. Việc này có tương quan cho cơ chế cabịt của Composer, vì khi bạn chạy với quyền suvì chưng, cabịt của Composer cũng trở nên được lưu cùng với quyền sudo (Có nghĩa là quyền của user root). lúc chúng ta chạy lại câu lệnh composer install – không tồn tại suvày – tại một project / user không giống, composer đã không tồn tại quyền nhằm đọc tệp tin cađậy này.

Cơ chế lưu cabịt của Composer cũng như bao khối hệ thống khác, Lúc thiết đặt thứ nhất nó vẫn lưu một phiên bạn dạng cache làm việc bên trên trang bị chúng ta, với khi bạn buộc phải sử dụng lại đúng package đó, verison kia, nó đang kiểm soát cache và (nếu có) lấy trường đoản cú cađậy ra núm vị yêu cầu cài đặt lại từ đầu.

quý khách có thể kiểm soát thỏng mục cađậy mặc định bên trên đồ vật bởi câu lệnh:

suvị composer config –các mục –global

*

Một số config cache của Composer:

cache-dir: Thỏng mực cội tàng trữ toàn bộ cađậy áp dụng vày Composer.cache-files-dir: Nơi lưu giữ những file package dưới dạng nén zip.cache-repo-dir: Lưu trữ các cực kỳ dữ liệu repository cho Composer với những Version Control System (VCS) như github, bitbucket.cache-vcs-dir: Lưu trữ bạn dạng sao VCS để download rất dữ liệu repository VCS git/hg cùng để tăng speed quy trình install.cache-files-ttl: Mặc định là 15552000 (6 tháng). Composer cabít toàn bộ package mà nó tải về. Chúng khoác định sẽ ảnh hưởng xóa sau 6 mon ko được áp dụng. quý khách hàng có thể điều chỉnh thông số này để cấu hình thiết lập thời lượng (tính bằng giây) hoặc vô hiệu hóa hóa trọn vẹn bằng phương pháp đặt thành 0.cache-files-maxsize: Mặc định là 300MiB, đó là giới hạn buổi tối qua mà cađậy có thể được thực hiện. Lúc thừa quá mức cho phép được cho phép, đầy đủ tệp tin cũ nhất (hoặc không nhiều được sử dụng nhất) có khả năng sẽ bị xóa.Packagist

Packagist là khu vực tàng trữ package mang định của Composer. Nó cho phép bạn tra cứu những package với đến Composer biết nơi mang code tự đâu. Quý Khách có thể public package của chính bản thân mình lên trên đây một biện pháp dễ dàng và đơn giản bằng cách thêm 1 tệp tin composer.json vào thỏng mục nơi bắt đầu trên repository (github / bitbucket) của chúng ta, cùng với câu chữ nlỗi sau:

“name”: “your-vendor-name/package-name”, “description”: “A short description of what your package does”, “require”: “php”: “^7.2”, “another-vendor/package”: “1.*” Đây là đọc tin tối tđọc nhưng bạn yêu cầu cung ứng. Để biết thêm cụ thể về đặt tên package cùng các ngôi trường chúng ta cũng có thể thực hiện để document package của doanh nghiệp giỏi hơn, bạn có thể phát âm trên trên đây.

Sau đó bạn cũng có thể đăng nhập lệ packagist cùng submit package của bản thân. khi các bạn sẽ nhập public repository URL của chính mình vào kia, package của các bạn sẽ được tự động hóa thu thập thông báo theo thời hạn. quý khách hàng chỉ cần đảm bảo rằng bạn luôn luôn update tệp composer.json.

Tổng kết

Trên đấy là hồ hết kiến thức bản thân cóp nhặt được về Composer. Còn không hề ít điều nữa bạn cũng có thể làm với Composer tuy nhiên mình hy vọng mình đã đến chúng ta một chiếc quan sát toàn diện và tổng thể về kiểu cách Composer chuyển động.