Nhà soạn nhạc json cập nhật phiên bản php

Nếu môi trường phát triển và sản xuất của bạn không phù hợp, bạn có thể dễ dàng gặp khó khăn khi đến lúc triển khai máy chủ trực tiếp. Không có gì lạ khi các nhà phát triển thấy mình làm việc với một phiên bản PHP và sử dụng một phiên bản khác trong đích đến cuối cùng của ứng dụng hoặc trang web. Nếu bạn sử dụng Trình soạn thảo để quản lý các gói PHP, sẽ rất tốt nếu bạn có thể tính đến điều này để tránh mọi bất ngờ khó chịu sau khi triển khai. Rất may Nhà soạn nhạc đã bảo hiểm này

Chúng tôi có thể cho Composer biết phiên bản PHP nào chúng tôi đang hỗ trợ với ứng dụng/trang web của mình bằng cách sử dụng cấu hình

php composer.phar update
5 trong trình soạn thảo của chúng tôi. tập tin json

{
    "name": ".../...",
    "config": {
        "platform": {
            "php": "5.6.1"
        }
    },
    "require": {
        ...
    }
}

Trong ví dụ này, chúng tôi đang giả mạo phiên bản PHP thành 5. 6. 1. Điều này có nghĩa là bất cứ khi nào chúng tôi thử và cài đặt hoặc cập nhật một gói với Trình soạn thảo, phiên bản nền tảng giả mạo của PHP sẽ được tính đến thay vì phiên bản PHP đang được sử dụng trên dòng lệnh mà chúng tôi đang chạy Trình soạn thảo từ. Điều này thực sự hữu ích nếu môi trường sản xuất của chúng tôi sử dụng một thiết lập khác với môi trường chúng tôi đang phát triển. Ví dụ: bạn có thể đang sử dụng phiên bản cập nhật của PHP 7 cục bộ, nhưng triển khai tới máy chủ vẫn sử dụng phiên bản 5. 6

Một cách khác để thiết lập điều này là từ dòng lệnh

composer config platform.php 5.6.1

Điều này sẽ đặt tùy chọn

php composer.phar update
5 trong trình soạn nhạc. json cho chúng tôi. Trong ví dụ này, nó sẽ thêm PHP 5. 6. 1 vào tệp JSON giống như trong ví dụ trước. Bạn cũng có thể sử dụng cờ
php composer.phar update
7 để đặt cờ này trên toàn cầu

Trên nền tảng gói Trình soạn thảo, các yêu cầu được thêm vào giống như các phụ thuộc gói. Vì vậy, ví dụ: nếu chúng tôi có một gói yêu cầu tối thiểu PHP 7. 1. 0 nhà soạn nhạc. tệp json sẽ trông như thế nào. -

{
    "name": ".../...",
    "require": {
        "php": "7.1.0"
    }
}

Đây là những gì Trình soạn thảo sẽ sử dụng khi cài đặt và cập nhật các gói khi dự án của chúng tôi có cấu hình nền tảng

Lưu ý rằng khi thêm yêu cầu PHP tối thiểu, chúng tôi thêm yêu cầu này dưới dạng phụ thuộc bằng cách sử dụng khóa

php composer.phar update
8, trong khi cài đặt thiết lập nền tảng sử dụng
php composer.phar update
5 trong tùy chọn
composer config platform.php 5.6.1
00

Khi nói đến việc cài đặt và cập nhật các gói, đôi khi bạn có thể muốn bỏ qua các yêu cầu nền tảng. Ví dụ: khi thêm hoặc cập nhật phần phụ thuộc của nhà phát triển sẽ không bao giờ được cài đặt trên môi trường sản xuất. Đối với điều này, chúng ta có thể sử dụng cờ

composer config platform.php 5.6.1
0

composer update phpunit/phpunit --ignore-platform-reqs

Mặc dù sử dụng cấu hình

php composer.phar update
5 trong composer. json có thể không bắt được tất cả các gói không phù hợp khi sử dụng Trình soạn thảo, hy vọng rằng nó sẽ bắt được hầu hết các mã không tương thích mà có thể đã tìm thấy đường vào môi trường sản xuất của bạn. Đây là một cứu cánh cho tôi trong quá khứ và giúp tôi tránh được nhiều cơn đau đầu

Để giới thiệu cách sử dụng cơ bản của chúng tôi, chúng tôi sẽ cài đặt

composer config platform.php 5.6.1
02, một thư viện ghi nhật ký. Nếu bạn chưa cài đặt Composer, hãy tham khảo chương Giới thiệu

Ghi chú. để đơn giản, phần giới thiệu này sẽ giả định rằng bạn đã thực hiện cài đặt Composer cục bộ

php composer.phar update0. Thiết lập dự án#

Để bắt đầu sử dụng Composer trong dự án của bạn, tất cả những gì bạn cần là một tệp

php composer.phar update
0. Tệp này mô tả các phần phụ thuộc của dự án của bạn và cũng có thể chứa siêu dữ liệu khác. Thông thường, nó sẽ nằm trong thư mục trên cùng của kho lưu trữ dự án/VCS của bạn. Về mặt kỹ thuật, bạn có thể chạy Composer ở bất cứ đâu nhưng nếu bạn muốn xuất bản một gói lên Packagist. org, nó sẽ phải có khả năng tìm thấy tệp ở đầu kho lưu trữ VCS của bạn

Phím php composer.phar update2#

Điều đầu tiên bạn chỉ định trong

php composer.phar update
0 là khóa
php composer.phar update
2. Bạn đang nói với Composer những gói mà dự án của bạn phụ thuộc vào

composer config platform.php 5.6.1
0

Như bạn có thể thấy,

php composer.phar update
2 lấy một đối tượng ánh xạ các tên gói (e. g.
composer config platform.php 5.6.1
02) đến các ràng buộc phiên bản (e. g.
php composer.phar update
7)

Composer sử dụng thông tin này để tìm kiếm tập hợp tệp phù hợp trong gói "kho" mà bạn đăng ký bằng khóa

php composer.phar update
8 hoặc trong Packagist. org, kho gói mặc định. Trong ví dụ trên, do không có kho lưu trữ nào khác được đăng ký trong tệp
php composer.phar update
0 nên giả định rằng gói
composer config platform.php 5.6.1
02 đã được đăng ký trên Packagist. tổ chức. (Đọc thêm về Packagist và về kho lưu trữ)

Tên gói#

Tên gói bao gồm tên nhà cung cấp và tên dự án. Thường thì những thứ này sẽ giống hệt nhau - tên nhà cung cấp chỉ tồn tại để ngăn xung đột đặt tên. Ví dụ, nó sẽ cho phép hai người khác nhau tạo một thư viện tên là

composer config platform.php 5.6.1
51. Một người có thể được đặt tên là
composer config platform.php 5.6.1
52 trong khi người kia có thể là
composer config platform.php 5.6.1
53

Đọc thêm về xuất bản các gói và đặt tên gói. (Lưu ý rằng bạn cũng có thể chỉ định "gói nền tảng" làm phần phụ thuộc, cho phép bạn yêu cầu một số phiên bản nhất định của phần mềm máy chủ. Xem các gói nền tảng bên dưới. )

Hạn chế phiên bản gói #

Trong ví dụ của chúng tôi, chúng tôi đang yêu cầu gói Monolog với ràng buộc phiên bản

composer config platform.php 5.6.1
54. Điều này có nghĩa là bất kỳ phiên bản nào trong nhánh phát triển
composer config platform.php 5.6.1
55 hoặc bất kỳ phiên bản nào lớn hơn hoặc bằng 2. 0 và nhỏ hơn 2. 1 (
composer config platform.php 5.6.1
56)

Vui lòng đọc các phiên bản để biết thêm thông tin chi tiết về các phiên bản, cách các phiên bản liên quan với nhau và về các ràng buộc của phiên bản

Làm cách nào để Trình soạn thảo tải xuống các tệp phù hợp? . Nếu bạn chưa đăng ký bất kỳ kho lưu trữ bổ sung nào hoặc nó không tìm thấy gói có tên đó trong các kho lưu trữ mà bạn đã chỉ định, nó sẽ quay trở lại Packagist. org (thêm bên dưới)

Khi Trình soạn thảo tìm thấy gói phù hợp, trong Packagist. org hoặc trong kho lưu trữ mà bạn đã chỉ định, sau đó nó sẽ sử dụng các tính năng lập phiên bản của VCS của gói (i. e. , nhánh và thẻ) để cố gắng tìm kết quả phù hợp nhất cho ràng buộc phiên bản mà bạn đã chỉ định. Hãy nhớ đọc về phiên bản và độ phân giải gói trong bài viết về phiên bản

Ghi chú. Nếu bạn đang cố gắng yêu cầu một gói nhưng Trình soạn thảo đưa ra lỗi liên quan đến độ ổn định của gói, thì phiên bản bạn đã chỉ định có thể không đáp ứng các yêu cầu về độ ổn định tối thiểu mặc định của bạn. Theo mặc định, chỉ các bản phát hành ổn định mới được xem xét khi tìm kiếm các phiên bản gói hợp lệ trong VCS của bạn

Bạn có thể gặp phải vấn đề này nếu đang cố gắng yêu cầu các phiên bản dev, alpha, beta hoặc RC của một gói. Đọc thêm về cờ ổn định và khóa

composer config platform.php 5.6.1
59 trên trang lược đồ

Cài đặt phụ thuộc #

Để cài đặt ban đầu các phụ thuộc đã xác định cho dự án của bạn, bạn nên chạy lệnh

php composer.phar update
0

php composer.phar update

Điều này sẽ khiến Composer làm hai việc

  • Nó giải quyết tất cả các phụ thuộc được liệt kê trong tệp
    php composer.phar update
    0 của bạn và ghi tất cả các gói và phiên bản chính xác của chúng vào tệp
    php composer.phar update
    2, khóa dự án với các phiên bản cụ thể đó. Bạn nên cam kết tệp
    php composer.phar update
    2 vào repo dự án của mình để tất cả những người làm việc trong dự án đều bị khóa với cùng các phiên bản phụ thuộc (thêm bên dưới). Đây là vai trò chính của lệnh
    php composer.phar update
    0
  • Sau đó nó ngầm chạy lệnh
    php composer.phar update
    5. Thao tác này sẽ tải các tệp phụ thuộc vào thư mục
    php composer.phar update
    6 trong dự án của bạn. (Thư mục
    php composer.phar update
    6 là vị trí thông thường cho tất cả mã của bên thứ ba trong một dự án). Trong ví dụ của chúng tôi ở trên, bạn sẽ nhận được các tệp nguồn Monolog trong
    php composer.phar update
    8. Vì Monolog phụ thuộc vào
    php composer.phar update
    9, các tệp của gói đó cũng có thể được tìm thấy bên trong
    composer config platform.php 5.6.1
    50

Mẹo. Nếu bạn đang sử dụng git cho dự án của mình, bạn có thể muốn thêm

php composer.phar update
6 vào
composer config platform.php 5.6.1
52 của mình. Bạn thực sự không muốn thêm tất cả mã của bên thứ ba đó vào kho lưu trữ được tạo phiên bản của mình

Cam kết tệp php composer.phar update2 của bạn với kiểm soát phiên bản#

Việc ủy ​​thác tệp này cho kiểm soát phiên bản là rất quan trọng vì nó sẽ khiến bất kỳ ai thiết lập dự án sử dụng chính xác các phiên bản phụ thuộc mà bạn đang sử dụng. Máy chủ CI của bạn, các máy sản xuất, các nhà phát triển khác trong nhóm của bạn, mọi thứ và mọi người đều chạy trên cùng một phần phụ thuộc, giúp giảm thiểu khả năng xảy ra lỗi chỉ ảnh hưởng đến một số phần của quá trình triển khai. Ngay cả khi bạn phát triển một mình, trong sáu tháng khi cài đặt lại dự án, bạn có thể cảm thấy tự tin rằng các phụ thuộc được cài đặt vẫn hoạt động ngay cả khi các phụ thuộc của bạn đã phát hành nhiều phiên bản mới kể từ đó. (Xem ghi chú bên dưới về cách sử dụng lệnh

php composer.phar update
0. )

Ghi chú. Đối với các thư viện, không cần thiết phải cam kết tệp khóa, xem thêm. Thư viện - Tệp khóa

Cài đặt từ php composer.phar update2#

Nếu đã có tệp

php composer.phar update
2 trong thư mục dự án, điều đó có nghĩa là bạn đã chạy lệnh
php composer.phar update
0 trước đó hoặc ai đó khác trong dự án đã chạy lệnh
php composer.phar update
0 và chuyển giao tệp
php composer.phar update
2 cho dự án (điều này tốt)

Dù bằng cách nào, việc chạy

php composer.phar update
5 khi có tệp
php composer.phar update
2 sẽ giải quyết và cài đặt tất cả các phụ thuộc mà bạn đã liệt kê trong
php composer.phar update
0, nhưng Trình soạn thảo sử dụng các phiên bản chính xác được liệt kê trong
php composer.phar update
2 để đảm bảo rằng các phiên bản gói nhất quán cho mọi người làm việc trong dự án của bạn. Kết quả là bạn sẽ có tất cả các phần phụ thuộc mà tệp
php composer.phar update
0 của bạn yêu cầu, nhưng chúng có thể không phải là tất cả các phiên bản mới nhất hiện có (một số phần phụ thuộc được liệt kê trong tệp
php composer.phar update
2 có thể đã phát hành các phiên bản mới hơn kể từ khi tệp được tạo). Điều này là do thiết kế, nó đảm bảo rằng dự án của bạn không bị hỏng do những thay đổi không mong muốn trong các phụ thuộc

Vì vậy, sau khi tìm nạp các thay đổi mới từ kho lưu trữ VCS của bạn, bạn nên chạy Trình soạn thảo

php composer.phar update
5 để đảm bảo thư mục nhà cung cấp đồng bộ với tệp
php composer.phar update
2 của bạn

composer config platform.php 5.6.1
5

Đang cập nhật các phần phụ thuộc lên các phiên bản mới nhất của chúng#

Như đã đề cập ở trên, tệp

php composer.phar update
2 ngăn bạn tự động tải các phiên bản phụ thuộc mới nhất của mình. Để cập nhật lên các phiên bản mới nhất, hãy sử dụng lệnh
php composer.phar update
0. Thao tác này sẽ tìm nạp các phiên bản phù hợp mới nhất (theo tệp
php composer.phar update
0 của bạn) và cập nhật tệp khóa với các phiên bản mới

php composer.phar update

Ghi chú. Trình soạn thảo sẽ hiển thị Cảnh báo khi thực hiện lệnh

php composer.phar update
5 nếu
php composer.phar update
2 chưa được cập nhật do các thay đổi được thực hiện đối với
php composer.phar update
0 có thể ảnh hưởng đến độ phân giải phụ thuộc

Nếu bạn chỉ muốn cài đặt, nâng cấp hoặc xóa một phần phụ thuộc, bạn có thể liệt kê rõ ràng phần phụ thuộc đó dưới dạng đối số

composer config platform.php 5.6.1
5

người đóng gói#

người đóng gói. org là kho lưu trữ Composer chính. Kho lưu trữ Composer về cơ bản là một nguồn gói. một nơi mà bạn có thể nhận được các gói từ. Packagist đặt mục tiêu trở thành kho lưu trữ trung tâm mà mọi người sử dụng. Điều này có nghĩa là bạn có thể tự động

php composer.phar update
2 bất kỳ gói nào có sẵn ở đó mà không cần chỉ định thêm vị trí Trình soạn thảo sẽ tìm gói đó

Nếu bạn đến Packagist. org, bạn có thể duyệt và tìm kiếm các gói

Bất kỳ dự án nguồn mở nào sử dụng Trình soạn thảo đều được khuyến nghị xuất bản các gói của họ trên Packagist. Thư viện không cần phải có trên Packagist để được Composer sử dụng, nhưng nó cho phép các nhà phát triển khác khám phá và áp dụng nhanh hơn

Gói nền tảng #

Trình soạn thảo có các gói nền tảng, là các gói ảo dành cho những thứ được cài đặt trên hệ thống nhưng Trình soạn thảo không thực sự cài đặt được. Điều này bao gồm bản thân PHP, phần mở rộng PHP và một số thư viện hệ thống

  • php composer.phar update
    35 đại diện cho phiên bản PHP của người dùng, cho phép bạn áp dụng các ràng buộc, e. g.
    php composer.phar update
    36. Để yêu cầu phiên bản 64 bit của php, bạn có thể yêu cầu gói
    php composer.phar update
    37

  • php composer.phar update
    38 đại diện cho phiên bản thời gian chạy HHVM và cho phép bạn áp dụng một ràng buộc, e. g. ,
    php composer.phar update
    39

  • php composer.phar update
    80 cho phép bạn yêu cầu các tiện ích mở rộng PHP (bao gồm các tiện ích mở rộng cốt lõi). Phiên bản có thể khá không nhất quán ở đây, vì vậy, thường nên đặt ràng buộc thành
    php composer.phar update
    81. Một ví dụ về tên gói mở rộng là
    php composer.phar update
    82

  • php composer.phar update
    83 cho phép thực hiện các ràng buộc trên các phiên bản thư viện được sử dụng bởi PHP. Sau đây là có sẵn.
    php composer.phar update
    84,
    php composer.phar update
    85,
    php composer.phar update
    86,
    php composer.phar update
    87,
    php composer.phar update
    88,
    php composer.phar update
    89,
    php composer.phar update
    80,
    php composer.phar update
    81

Bạn có thể sử dụng

php composer.phar update
82 để nhận danh sách các gói nền tảng có sẵn tại địa phương của mình

Đang tự động tải #

Đối với các thư viện chỉ định thông tin tự động tải, Trình soạn thảo tạo tệp

php composer.phar update
83. Bạn có thể bao gồm tệp này và bắt đầu sử dụng các lớp mà các thư viện đó cung cấp mà không cần làm gì thêm

php composer.phar update
2

Bạn thậm chí có thể thêm mã của riêng mình vào trình tải tự động bằng cách thêm trường

php composer.phar update
84 vào
php composer.phar update
0

php composer.phar update
3

Nhà soạn nhạc sẽ đăng ký trình tải tự động PSR-4 cho không gian tên

php composer.phar update
86

Bạn xác định ánh xạ từ không gian tên đến thư mục. Thư mục

php composer.phar update
87 sẽ nằm trong thư mục gốc của dự án của bạn, cùng cấp độ với thư mục
php composer.phar update
6. Tên tệp ví dụ sẽ là
php composer.phar update
89 chứa lớp
composer config platform.php 5.6.1
020

Sau khi thêm trường

php composer.phar update
84, bạn phải chạy lại lệnh này

php composer.phar update
8

Lệnh này sẽ tạo lại tệp

php composer.phar update
83. Xem phần
composer config platform.php 5.6.1
023 để biết thêm thông tin

Bao gồm tệp đó cũng sẽ trả về phiên bản trình tải tự động, vì vậy bạn có thể lưu trữ giá trị trả về của lệnh gọi bao gồm trong một biến và thêm nhiều không gian tên hơn. Điều này có thể hữu ích cho các lớp tự động tải trong bộ thử nghiệm, chẳng hạn

php composer.phar update
8

Ngoài tính năng tự động tải PSR-4, Composer còn hỗ trợ tính năng tự động tải PSR-0, sơ đồ lớp và tệp. Xem tài liệu tham khảo

php composer.phar update
84 để biết thêm thông tin

Xem thêm tài liệu về tối ưu hóa trình tải tự động

Ghi chú. Nhà soạn nhạc cung cấp trình tải tự động của riêng mình. Nếu bạn không muốn sử dụng cái đó, bạn có thể bao gồm các tệp

composer config platform.php 5.6.1
025, các tệp này trả về các mảng kết hợp cho phép bạn định cấu hình trình tải tự động của riêng mình

Làm cách nào để thay đổi phiên bản PHP trong trình soạn thảo?

Buộc nhà soạn nhạc sử dụng một phiên bản PHP cụ thể .
Sử dụng lệnh type để tìm đường dẫn đến PHP. gõ -a php7
Sau đó tìm nhà soạn nhạc. phar sử dụng lệnh find. tìm / -type f -name "nhà soạn nhạc. phar" 2>/dev/null
Sử dụng lệnh cd để thay đổi thư mục project/dev/prod. .
Cuối cùng, yêu cầu nhà soạn nhạc sử dụng phiên bản PHP cụ thể

Nhà soạn nhạc sử dụng phiên bản PHP nào?

Không thể giải quyết các yêu cầu của bạn thành một bộ gói có thể cài đặt. Vấn đề 1 - Trình soạn thảo gốc. json yêu cầu php^7. 4 nhưng phiên bản php của bạn ( 8. 1. 5 ) không đáp ứng yêu cầu đó. .

Làm cách nào để cài đặt tệp json của nhà soạn nhạc trong PHP?

Trình quản lý phụ thuộc nhà soạn nhạc
Tải xuống và cài đặt Trình soạn thảo
Quản lý dự án Composer
Làm việc với nhà soạn nhạc. json
Quản lý phụ thuộc
Tạo và chạy tập lệnh Composer
Xem nhật ký Composer
Chạy các lệnh Composer bổ sung

Làm cách nào để cài đặt trình soạn thảo trong PHP 8?

Để cài đặt trình soạn thảo trên toàn cầu, hãy sử dụng lệnh sau. Lệnh này sẽ tải xuống và cài đặt Trình soạn thảo dưới dạng lệnh trên toàn hệ thống có tên là composer , bên dưới /usr/local/bin. sudo php /tmp/composer-setup. php --install-dir= /usr/local/bin --filename= composer .