Tìm hiểu về composer

Kể tự Khi kiến thiết vào ngày 1 mon 3 thời điểm năm 2012, Composer đang trở đề xuất phổ cập rộng thoải mái bởi vì đã đưa về một máy khôn cùng quan trọng cho PHP: cai quản dependency. Composer về cơ phiên bản là 1 cách để pull toàn bộ những phần mềm của bên đồ vật bố nlỗi frameworks CSS, plugin jQuery và các ứng dụng khác vào dự án công trình của doanh nghiệp.

You watching: Tìm hiểu về composer

Đang xem: Composer là gì

Tuy nhiên, rất có thể chúng ta đã / đã cần sử dụng Composer vày tiện ích mà nó mang đến mà chưa bao giờ từng trở lại tìm hiểu xem đúng mực Composer là gì và nó làm gì. Vậy thì sống bài xích này bản thân vẫn thuộc tìm hiểu cách Composer hoạt động ra sao.

Composer là gì?

Composer là một cách thức nhằm cai quản dependency vào PHP. Nó được cho phép bạn khai báo những tlỗi viện cơ mà dự án của công ty yêu cầu và nó sẽ quản lý (thiết lập đặt/cập nhật) bọn chúng cho bạn.

Composer không cần là phép tắc cai quản package nhỏng Yum hoặc Apt. Nó tương quan mang đến “package” hoặc thư viện, nhưng mà nó quản lý bọn chúng bên trên các đại lý từng dự án, thiết đặt bọn chúng trong một thỏng mục (ví dụ: vendor) vào dự án công trình của công ty. Theo mang định, nó không setup bất kể máy gì global. Tuy nhiên, nó cung cấp một project “global” nhằm tiện lợi thông qua global comm&.

Ý tưởng này chưa hẳn là new với Composer được truyền cảm giác trẻ trung và tràn trề sức khỏe bởi npm của node và bundler của ruby.

Giả sử:

Bạn gồm một dự án dựa vào vào một số tlỗi viện.Một số thỏng viện dựa vào vào những thư viện không giống.

Composer:

Cho phxay bạn khai báo các thư viện mà lại bạn phụ thuộc vào vào.Tìm tòi phiên bạn dạng làm sao của package nào rất có thể / rất cần được thiết đặt, và thiết lập chúng (có nghĩa là nó tải nó vào dự án của bạn).Dependency management

Có hai cách để thống trị dependency cùng với Composer. Trước hết là chính Composer, một giải pháp commvà line để tích lũy với quản lý các dependency. Thđọng nhì là Packagist – kho tàng trữ tổng vừa lòng bao gồm. Đây là vị trí các package bạn (tất cả thể) muốn thực hiện được tàng trữ.

Khi áp dụng Composer, hoàn toàn có thể bạn sẽ thân quen với 1 file JSON là composer.json. Cơ bạn dạng thì nó đã trông cầm cố này:

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

Thư mục vendor sẽ tiến hành tạo thành cất toàn bộ các dependency – bao hàm cả thiết yếu composer. Hình như, monolog và psr (dependency của monolog) cũng rất được thêm vào một trong những tệp tin khác là composer.lochồng.

Chỉ định phiên bản

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

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

See more: Phân Biệt In Relation To Là Gì ? In Relation To Something Nghĩa Của Từ Relation

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

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

~3.6 có thể chấp nhận được tất cả phiên bản to hơn bởi 3.6, tuy vậy ko bao hàm tự 4.0 trngơi nghỉ lên. Nó tương đương với >=3.6 .

Toán tử^, theo document của composer thì dường như ngùng ngoằng, nhưng lại nói dễ dàng thì nó chất nhận được toàn bộ phiên bản trọng tâm nhị phiên phiên bản chủ yếu cạnh bên nhau (ví dụ 1. với 2.). ví dụ như ^1.2.3 đang cho phép tất cả phiên phiên bản thân 1.2.3 và 2.0.0, nó tương đương cùng với >=1.2.3 . Toán thù tử ^ được recommover lúc dùng làm viết code tệp tin composer.json.

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

composer.json cùng composer.lock

Để lý giải thì hơi lâu năm, bạn có thể hiểu qua bài này để gọi về compser.json với composer.loông xã tất cả trọng trách khác nhau cụ như thế nào.

TL;DR:

composer.json chỉ liệt kê dependency, không chỉ là định cụ thể version package sẽ được install, composer.loông chồng là nơi hướng dẫn và chỉ định version nào được install Khi chạy composer install.composer.json được dùng để chạy composer install lần đầu tiên, composer.loông chồng được tạo nên kế tiếp, tàng trữ phiên bạn dạng đã làm được setup. Sau Khi đã gồm composer.lock, composer vẫn sử dụng composer.lock để xác định phiên phiên bản setup nhưng mà ko sử dụng composer.json nữa.Dùng composer.loông chồng để bảo đảm version package của các thành viên vào đội là giống như nhau.Cơ chế cabít của composer

Composer gồm một cơ chế để lưu giữ cabít các dependency Lúc thiết đặt, vấn đề này góp bớt thời gian Lúc chạy lại câu lệnh install. cũng có thể chúng ta đã 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 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ày. Việc này còn có liên quan đến chế độ cabít của Composer, vị khi bạn chạy cùng với quyền suvị, cađậy của Composer cũng trở thành được lưu giữ với quyền subởi (tức là quyền của user root). Lúc chúng ta chạy lại câu lệnh composer install – không có subởi – tại 1 project / user khác, composer sẽ không tồn tại quyền nhằm gọi file cađậy này.

Cơ chế lưu giữ cabít của Composer cũng tương tự bao khối hệ thống không giống, Khi setup đầu tiên nó sẽ lưu một phiên phiên bản cache ngơi nghỉ trên vật dụng chúng ta, và khi bạn buộc phải dùng lại đúng package kia, verison đó, nó đang đánh giá cabít cùng (nếu như có) lấy tự cabít ra cố vì chưng bắt buộc download lại từ trên đầu.

Quý khách hàng rất có thể đánh giá thỏng mục cache mang định bên trên lắp thêm bởi câu lệnh:

suvày composer config –danh 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ữ toàn bộ cabít áp dụng bởi vì Composer.cache-files-dir: Nơi lưu lại những tệp tin package dưới dạng nén zip.cache-repo-dir: Lưu trữ các khôn xiết dữ liệu repository cho Composer và các Version Control System (VCS) nhỏng github, bitbucket.cache-vcs-dir: Lưu trữ bản sao VCS để mua khôn xiết dữ liệu repository VCS git/hg cùng để tăng tốc độ quy trình install.cache-files-ttl: Mặc định là 15552000 (6 tháng). Composer cađậy toàn bộ package nhưng mà nó download. Chúng mang định sẽ bị xóa sau 6 tháng ko được thực hiện. quý khách hoàn toàn có thể điều chỉnh thông số kỹ thuật này nhằm tùy chỉnh thiết lập thời lượng (tính bởi 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 mà cađậy có thể được áp dụng. Lúc quá trên mức cần thiết được cho phép, hồ hết file cũ độc nhất vô nhị (hoặc ít được sử dụng nhất) có khả năng sẽ bị xóa.Packagist

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

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

See more: Lãi Suất Libor Là Gì ? Định Nghĩa, Ví Dụ, Giải Thích Lãi Suất Libor Là Gì

Tổng kết

Trên đây là đầy đủ kiến thức bản thân gom góp được về Composer. Còn tương đối nhiều điều nữa bạn có thể có tác dụng cùng với Composer nhưng mà bản thân hy vọng tôi đã đến các bạn một cái chú ý tổng thể và toàn diện về phong thái Composer chuyển động.


Chuyên mục: Giải Đáp