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

Trình soạn thảo là trình quản lý gói thường được sử dụng để quản lý thư viện và các phụ thuộc khác cho các dự án PHP

Phát hànhĐã phát hànhHỗ trợ bảo mậtLatest2. 53 tuần trướcYes2. 5. 12. 44 tháng và 3 tuần trướcĐã kết thúc 3 tuần trước2. 4. 42. 39 tháng trướcĐã kết thúc 4 tháng và 3 tuần trước2. 3. 102. 2 (LTS)1 năm trước Kết thúc sau 11 tháng2. 2. 1816 năm và 9 tháng trướcĐã kết thúc 2 năm trước1. 10. 26

Mặc dù thỉnh thoảng nó vẫn nhận được các bản sửa lỗi quan trọng, Composer 1. x chủ yếu là EOL và các nhà phát triển kêu gọi mọi người chuyển sang Composer 2. x

Packagist (kho lưu trữ chính của Composer) vẫn hỗ trợ Composer 1. x ngay bây giờ nhưng với một vài lưu ý

Phiên bản nhà soạn nhạc Phiên bản PHP2. 3+

composer require foo/bar --no-audit
composer update --no-audit
02. 2 (LTS)____71

Bạn nên chạy một trong những số phát hành được hỗ trợ được liệt kê ở trên trong cột ngoài cùng bên phải

Bạn có thể kiểm tra phiên bản mà bạn hiện đang sử dụng bằng cách chạy.

composer --version


Bạn có thể gửi một cải tiến cho trang này trên GitHub. Trang này có một Trang thảo luận tương ứng

Phiên bản JSON của trang này có tại /api/composer. json. Xem Tài liệu API để biết thêm thông tin. Bạn có thể đăng ký nguồn cấp dữ liệu iCalendar tại /calendar/composer. ics

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

composer require foo/bar --no-audit
composer update --no-audit
2 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

composer require foo/bar --no-audit
composer update --no-audit
2 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ờ
composer require foo/bar --no-audit
composer update --no-audit
4 để đặ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

composer require foo/bar --no-audit
composer update --no-audit
5, trong khi cài đặt thiết lập nền tảng sử dụng
composer require foo/bar --no-audit
composer update --no-audit
2 trong tùy chọn
composer require foo/bar --no-audit
composer update --no-audit
7

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

composer require foo/bar --no-audit
composer update --no-audit
2 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 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

Trình soạn thảo, trình quản lý phụ thuộc thực tế của PHP. mang đến một số tính năng mới trong Composer 2 sắp ra mắt. 4 phát hành. Nó mang đến các lệnh mới như

composer require foo/bar --no-audit
composer update --no-audit
9 và
composer require foo/bar --no-audit
composer update --no-audit
0, hỗ trợ hoàn thành trình bao trên các trình bao được hỗ trợ, đề xuất cài đặt gói có cờ
composer require foo/bar --no-audit
composer update --no-audit
1 khi thích hợp, xử lý tín hiệu quy trình được cải thiện, v.v.

Tương tự như phiên bản nhỏ trước Composer 2. 3, Nhà soạn nhạc 2. 4 cũng yêu cầu PHP 7. 2. Các ứng dụng sử dụng các phiên bản PHP cũ hơn có thể phải chuyển sang sử dụng Composer 2. 2, đây là phiên bản Hỗ trợ dài hạn để dễ dàng di chuyển sang Composer 2. x đầu tiên


Lệnh composer require foo/bar --no-audit composer update --no-audit0 mới

composer require foo/bar --no-audit
composer update --no-audit
0 là một lệnh mới được giới thiệu trong Composer 2. 4 "gỡ bỏ" các ràng buộc về phiên bản gói được liệt kê trong tệp
composer require foo/bar --no-audit
composer update --no-audit
2 bằng cách tăng chúng lên phiên bản mới nhất trong các ràng buộc được phép

Lệnh

composer require foo/bar --no-audit
composer update --no-audit
0 mới trong Composer 2. 4
Thông tin chi tiết về lệnh
composer require foo/bar --no-audit
composer update --no-audit
0 với các ví dụ sử dụng.

composer require foo/bar --no-audit
composer update --no-audit
0 cập nhật
composer require foo/bar --no-audit
composer update --no-audit
2 với số phiên bản mới, nhưng chỉ trong giới hạn chính/phụ/bản vá cho phép. Ví dụ: nếu tệp
composer require foo/bar --no-audit
composer update --no-audit
2 yêu cầu gói
composer require foo/bar --no-audit
composer update --no-audit
8 với ràng buộc phiên bản
composer require foo/bar --no-audit
composer update --no-audit
9, điều đó có nghĩa là Trình soạn thảo được phép cài đặt các phiên bản
composer require foo/bar --no-audit
composer update --no-audit
8 trong phạm vi
{
    "name": ".../...",
    "config": {
        "platform": {
            "php": "5.6.1"
        }
    },
    "require": {
        ...
    }
}
61 và
{
    "name": ".../...",
    "config": {
        "platform": {
            "php": "5.6.1"
        }
    },
    "require": {
        ...
    }
}
62 Chạy
composer require foo/bar --no-audit
composer update --no-audit
0 tăng ràng buộc thấp hơn của gói đối với phiên bản hiện được cài đặt

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

Lệnh

composer require foo/bar --no-audit
composer update --no-audit
0 không cập nhật các yêu cầu nền tảng, chẳng hạn như phiên bản PHP của các phiên bản mở rộng

Lệnh { "name": ".../...", "config": { "platform": { "php": "5.6.1" } }, "require": { ... } }65 mới

nhà soạn nhạc 2. 4 thêm một lệnh mới có tên là

{
    "name": ".../...",
    "config": {
        "platform": {
            "php": "5.6.1"
        }
    },
    "require": {
        ...
    }
}
65, quét các gói đã cài đặt để tìm các lỗ hổng bảo mật được báo cáo. Nó tồn tại với mã lỗi nếu có bất kỳ gói nào được cài đặt có lỗ hổng bảo mật đã biết

Các lỗ hổng bảo mật được báo cáo được Packagist thu thập theo mặc định

Nhà soạn nhạc sử dụng phiên bản php nào?
đầu ra lệnh `kiểm toán nhà soạn nhạc`

Lệnh

{
    "name": ".../...",
    "config": {
        "platform": {
            "php": "5.6.1"
        }
    },
    "require": {
        ...
    }
}
65 mới trong Composer 2. 4
Thông tin chi tiết hơn về lệnh
{
    "name": ".../...",
    "config": {
        "platform": {
            "php": "5.6.1"
        }
    },
    "require": {
        ...
    }
}
65 với các ví dụ về các định dạng đầu ra khác nhau.

Tự động quét các lỗ hổng bảo mật được báo cáo

Trong Nhà soạn nhạc 2. 4, khi một gói mới được cài đặt, gỡ bỏ hoặc cập nhật, Composer sẽ tự động quét các gói đã cài đặt để tìm các lỗ hổng được báo cáo. Điều này về cơ bản giống như việc chạy

{
    "name": ".../...",
    "config": {
        "platform": {
            "php": "5.6.1"
        }
    },
    "require": {
        ...
    }
}
65 tự động sau các lệnh
composer config platform.php 5.6.1
60,
composer config platform.php 5.6.1
61 và
composer config platform.php 5.6.1
62

Nhà soạn nhạc sử dụng phiên bản php nào?
Trình soạn thảo hiển thị cảnh báo về lệnh `cập nhật trình soạn thảo` nếu có lỗ hổng đã biết trong danh sách các gói đã cài đặt

Kiểm tra này có thể được tắt bằng cách chuyển tùy chọn

composer config platform.php 5.6.1
63 cho các lệnh
composer config platform.php 5.6.1
64 và
composer config platform.php 5.6.1
65

composer require foo/bar --no-audit
composer update --no-audit

Cũng có thể định cấu hình định dạng kiểm tra là

composer config platform.php 5.6.1
66,
composer config platform.php 5.6.1
67,
composer config platform.php 5.6.1
68 hoặc
composer config platform.php 5.6.1
69 bằng cách chuyển giá trị cho cờ
{
    "name": ".../...",
    "require": {
        "php": "7.1.0"
    }
}
70 mới. Giá trị
{
    "name": ".../...",
    "require": {
        "php": "7.1.0"
    }
}
70 là
composer config platform.php 5.6.1
66

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

Lưu ý rằng lệnh

{
    "name": ".../...",
    "require": {
        "php": "7.1.0"
    }
}
73 không thực hiện kiểm tra theo mặc định, nhưng lệnh này cũng có thể được bật và định cấu hình bằng tùy chọn
{
    "name": ".../...",
    "require": {
        "php": "7.1.0"
    }
}
74

composer config platform.php 5.6.1
6

Hoàn thành lệnh, gói và tùy chọn

Hỗ trợ hoàn thành lệnh được mở rộng trong Composer 2. 4 để hỗ trợ hoàn thành các lệnh, tùy chọn của Trình soạn thảo và thậm chí cả tên gói. Trong nội bộ, việc hoàn thành Composer phụ thuộc vào thư viện Symfony Console. Hiện tại, hỗ trợ được giới hạn ở Bash



Để định cấu hình hoàn thành Trình soạn thảo, hãy chạy

{
    "name": ".../...",
    "require": {
        "php": "7.1.0"
    }
}
75 không có tham số. Trên các nền tảng được hỗ trợ, Trình soạn thảo in tập lệnh hoàn thành sẽ được đặt trong thư mục nơi trình bao tải tập lệnh hoàn thành. Thiết lập này cũng yêu cầu cài đặt gói
{
    "name": ".../...",
    "require": {
        "php": "7.1.0"
    }
}
76

Đối với Debian/Ubuntu và các hệ thống tương tự

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

Đối với Fedora/RHEL và các hệ thống tương tự

composer config platform.php 5.6.1
7

Đối với Windows/MacOS
Thêm đầu ra tập lệnh của lệnh

{
    "name": ".../...",
    "require": {
        "php": "7.1.0"
    }
}
75 vào vị trí thích hợp (chẳng hạn như tệp được tải bởi
{
    "name": ".../...",
    "require": {
        "php": "7.1.0"
    }
}
78) nơi các tập lệnh hoàn thành lệnh được tải khi khởi tạo Bash.


Lời nhắc cài đặt gói với composer require foo/bar --no-audit composer update --no-audit1

Composer cung cấp các phần

composer config platform.php 5.6.1
64 và
composer config platform.php 5.6.1
71 để cài đặt các gói. Các gói
composer config platform.php 5.6.1
64 có nghĩa là các phụ thuộc sản xuất, trong khi các gói
composer config platform.php 5.6.1
71 dành cho thử nghiệm, CI/CD và các phụ thuộc phát triển khác

Kể từ Nhà soạn nhạc 2. 4, cố gắng cài đặt gói được gắn thẻ là

composer config platform.php 5.6.1
74,
composer config platform.php 5.6.1
75 hoặc
composer config platform.php 5.6.1
76 mà không có cờ
composer require foo/bar --no-audit
composer update --no-audit
1 sẽ nhắc người dùng cài đặt gói dưới dạng phụ thuộc
composer config platform.php 5.6.1
71 thay thế

Điều này hữu ích để tránh vô tình cài đặt các khung kiểm tra, bộ phân tích tĩnh, công cụ chất lượng mã, v.v. dưới dạng phụ thuộc sản xuất

Nhà soạn nhạc sử dụng phiên bản php nào?
Khi cài đặt `phpunit/phpunit` (được gắn thẻ với từ khóa `testing`), Composer sẽ nhắc cài đặt gói trong `require-dev`

Cải tiến lệnh composer config platform.php 5.6.179

Lệnh

composer update phpunit/phpunit --ignore-platform-reqs
90, liệt kê các gói đã lỗi thời từ các gói hiện được cài đặt, đã nhận được một bản nâng cấp trong Composer 2. 4. Nó hiện hiển thị các phụ thuộc trực tiếp và chuyển tiếp một cách riêng biệt

Nhà soạn nhạc sử dụng phiên bản php nào?
Lệnh `nhà soạn nhạc đã lỗi thời` hiển thị các phụ thuộc trực tiếp và chuyển tiếp một cách riêng biệt

Ngoài ra, lệnh

composer config platform.php 5.6.1
79 hiện hỗ trợ cờ
composer update phpunit/phpunit --ignore-platform-reqs
92 chỉ liệt kê các gói có phiên bản chính đã lỗi thời. Composer đã hỗ trợ các tùy chọn
composer update phpunit/phpunit --ignore-platform-reqs
93 và
composer update phpunit/phpunit --ignore-platform-reqs
94 để lọc các phiên bản lỗi thời theo bản vá và phiên bản phụ


nhà soạn nhạc 2. 4 cũng thêm nhiều cải tiến nhỏ

  • Cải thiện khả năng xử lý tín hiệu
    Khi Composer nhận được tín hiệu
    composer update phpunit/phpunit --ignore-platform-reqs
    95/
    composer update phpunit/phpunit --ignore-platform-reqs
    96/
    composer update phpunit/phpunit --ignore-platform-reqs
    97 (chẳng hạn như
    composer update phpunit/phpunit --ignore-platform-reqs
    95 khi người dùng nhấn
    composer update phpunit/phpunit --ignore-platform-reqs
    99), Composer sẽ đợi mọi quy trình bên ngoài đang chạy kết thúc. nhà soạn nhạc 2. 4 có thể hiển thị toàn bộ đầu ra của các quy trình trước khi thoát.
  • Lệnh
    composer require foo/bar --no-audit
    composer update --no-audit
    90 hỗ trợ
    composer require foo/bar --no-audit
    composer update --no-audit
    91 để phát hiện và thất bại nếu có bất kỳ tệp nào không tuân theo quy ước đặt tên PSR-0/PSR-4
  • composer require foo/bar --no-audit
    composer update --no-audit
    92 được thêm làm bí danh cho
    composer config platform.php 5.6.1
    60
  • composer require foo/bar --no-audit
    composer update --no-audit
    94 không được dùng nữa để thay thế cho gói
    composer require foo/bar --no-audit
    composer update --no-audit
    95 mới

Dùng thử Nhà soạn nhạc 2. 4

Trước Nhà soạn nhạc 2. 4 chính thức phát hành, có thể thử Composer 2. 4 (hoặc phiên bản mới nhất tại thời điểm đó) bằng cách nâng cấp lên phiên bản

composer require foo/bar --no-audit
composer update --no-audit
96 hoặc
composer require foo/bar --no-audit
composer update --no-audit
97 của Composer

Trình soạn thảo đang sử dụng phiên bản PHP nào?

Yêu cầu hệ thống# . 2. 5 PHP 7.2.5 để chạy. Phiên bản hỗ trợ dài hạn (2. 2. x) vẫn cung cấp hỗ trợ cho PHP 5. 3. 2+ trong trường hợp bạn gặp khó khăn với phiên bản PHP cũ.

Làm cách nào để thay đổi phiên bản PHP được sử dụng bởi nhà soạn nhạc?

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 có bao gồm PHP không?

Nhà soạn nhạc 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 Nhà soạn nhạc 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 .

Là phiên bản PHP 7. 4 ổn định?

PHP7. 4 . 4 sẽ tiếp tục cho đến tháng 11 năm 2022, khi phiên bản đến End of Life. PHP 7 đã nghỉ hưu có thể nhấn. 4 dưới dạng tùy chọn cho các trang web mới vào ngày 9 tháng 8 năm 2022