Kể trường đoản cú Khi gây ra vào trong ngày 1 tháng 3 năm 2012, Composer đang trnghỉ ngơi cần thịnh hành thoáng rộng vì chưng đã đem lại một thiết bị vô cùng cần thiết mang đến PHP: thống trị dependency. Composer về cơ phiên bản là một trong những phương pháp để pull toàn bộ các phần mềm của bên thiết bị tía nhỏng frameworks CSS, plugin jQuery cùng các phần mềm khác vào dự án công trình của doanh nghiệp.

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

Đang xem: Composer là gì

Tuy nhiên, có thể các bạn sẽ / sẽ dùng Composer vày lợi ích nhưng nó đem lại cơ mà chưa bao giờ từng quay trở lại tò mò coi đúng chuẩn Composer là gì và nó làm những gì. Vậy thì ở bài xích này mình sẽ thuộc tìm hiểu biện pháp Composer chuyển động như thế nào.

Composer là gì?

Composer là 1 phương tiện để làm chủ dependency vào PHP. Nó chất nhận được bạn khai báo các thỏng viện nhưng mà dự án công trình của chúng ta đề xuất với nó đã làm chủ (tải đặt/cập nhật) bọn chúng cho chính mình.

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

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

Giả sử:

Quý Khách có một dự án công trình phụ thuộc vào một số trong những thỏng viện.Một số thư viện dựa vào vào những thư viện khác.

Composer:

Cho phép các bạn knhì báo những tlỗi viện cơ mà bạn phụ thuộc vào.Thấy được phiên bạn dạng nào của package nào có thể / rất cần phải thiết đặt, và cài đặt chúng (có nghĩa là nó cài chúng vào dự án công trình của bạn).Dependency management

Có hai cách để thống trị dependency cùng với Composer. Trước tiên là thiết yếu Composer, một phép tắc commvà line để thu thập và thống trị các dependency. Thứ đọng hai là Packagist – kho lưu trữ tổng vừa lòng chính. Đây là nơi các package bạn (gồm thể) ý muốn thực hiện được tàng trữ.

Khi sử dụng Composer, có thể các bạn sẽ thân quen với cùng 1 tệp tin 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 thử khám phá của dự án công trình của các bạn sẽ được liệt kê trong phần require. Trong ngôi trường hòa 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ó đã cài toàn bộ package được định nghĩa trong tệp tin composer.json vào thư mục vendor của dự án công trình với làm cho một số điều không giống (vẫn bàn thảo mặt dưới).

Thỏng mục vendor sẽ tiến hành tạo thành cất tất cả những dependency – bao hàm cả thiết yếu composer. Hình như, monolog cùng psr (dependency của monolog) cũng khá được thêm vào trong 1 tệp tin không giống là composer.lock.

Chỉ định phiên bản

Có 6 phương pháp để hướng dẫn và chỉ định phiên bản trong file composer.json:

Các tân oán tử >, , >=, và !=. lấy 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 như thế nào trên 2.7 cùng dưới 3.5, bao hàm cả 3.5.

Xem thêm: Hốt Tất Liệt Là Ai - Nghĩa Của Từ Hốt Tất Liệt Trong Tiếng Việt

2.3.* đang bao hàm toàn bộ phiên phiên bản như thế nào lớn hơn bằng 2.3.0 cùng nhỏ tuổi rộng bởi 2.4.0. Nó tương tự với >=2.3.0

2.0.0 – 3.0.0 tức là bất kì phiên phiên bản vào to hơn bằng 2.0.0 cùng nhỏ dại rộng bằng 3.0.0. Nó tương tự cùng với >=2.0.0

~3.6 cho phép tất cả phiên bản to hơn bằng 3.6, tuy thế ko bao gồm từ bỏ 4.0 trngơi nghỉ lên. Nó tương tự cùng với >=3.6 .

Toán thù tử^, theo document của composer thì có vẻ như loằng ngoằng, tuy nhiên nói dễ dàng và đơn giản thì nó được cho phép toàn bộ phiên bản trọng điểm nhì phiên bản thiết yếu gần kề nhau (ví dụ 1. và 2.). lấy một ví dụ ^1.2.3 sẽ chất nhận được toàn bộ phiên bạn dạng giữa 1.2.3 và 2.0.0, nó tương đương với >=1.2.3 . Toán tử ^ được recommover Khi dùng để viết code file composer.json.

dev-master, Lúc hướng đẫn dev-master các bạn sẽ nhận thấy phiên bản mới nhất đang rất được cải tiến và phát triển nhưng chưa được thêm số phiên bạn dạng.

composer.json cùng composer.lock

Để phân tích và lý giải thì tương đối nhiều năm, bạn cũng có thể phát âm qua bài bác này để gọi về compser.json cùng composer.loông xã gồm trách nhiệm khác biệt thay làm sao.

TL;DR:

composer.json chỉ liệt kê dependency, không chỉ định cụ thể version package sẽ tiến hành install, composer.lock là chỗ hướng dẫn và chỉ định 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 đầu tiên, composer.loông chồng được tạo nên sau đó, lưu trữ phiên bạn dạng đã được thiết lập. Sau Lúc đang gồm composer.loông xã, composer sẽ sử dụng composer.loông xã để khẳng định phiên bản setup mà lại không cần sử dụng composer.json nữa.Dùng composer.lochồng nhằm bảo đảm version package của các thành viên trong team là tương đương nhau.Cơ chế cache của composer

Composer bao gồm một bề ngoài để giữ cabịt những dependency khi cài đặt, điều đó góp sút thời gian Lúc chạy lại câu lệnh install. cũng có thể bạn đã từng chạm mặt warning này của Composer Lúc chạy composer install:

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

Cơ chế lưu lại cabít của Composer tương tự như bao hệ thống không giống, Khi setup lần thứ nhất nó vẫn lưu lại một phiên bản cabít ở bên trên thiết bị các bạn, và khi chúng ta đề nghị sử dụng lại đúng package đó, verison đó, nó đã kiểm tra cache cùng (nếu như có) lấy trường đoản cú cađậy ra nạm bởi cần mua lại từ trên đầu.

quý khách hàng hoàn toàn có thể kiểm soát thỏng mục cabít mặc định bên trên sản phẩm bởi câu lệnh:

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

*

Một số config cabít của Composer:

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

Packagist là khu vực tàng trữ package mang định của Composer. Nó cho phép bạn search các package với đến Composer biết khu vực rước code từ bỏ đâu. Quý khách hàng rất có thể public package của mình lên đây một cách đơn giản và dễ dàng bằng phương pháp thêm một tệp tin composer.json vào thư mục nơi bắt đầu trên repository (github / bitbucket) của doanh nghiệp, với văn bản như 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à thông tin tối tphát âm nhưng mà chúng ta buộc phải hỗ trợ. Để hiểu biết thêm cụ thể về khắc tên package cùng các ngôi trường bạn có thể thực hiện nhằm document package của bạn giỏi hơn, chúng ta cũng có thể hiểu trên đây.

Sau đó bạn cũng có thể đăng nhtràn vào packagist cùng submit package của chính bản thân mình. Lúc các bạn vẫn nhập public repository URL của bản thân mình vào kia, package của bạn sẽ được tự động hóa thu thập ban bố theo định kỳ. quý khách hàng chỉ cần bảo đảm an toàn rằng các bạn luôn cập nhật tệp composer.json.

Tổng kết

Trên đó là đều kiến thức bản thân gom góp được về Composer. Còn rất nhiều điều nữa chúng ta có thể có tác dụng với Composer dẫu vậy bản thân hi vọng mình đã cho các bạn một cái quan sát toàn diện và tổng thể về phong thái Composer hoạt động.

Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *