Nhà cung cấp/tự động tải xuống PHP

Tôi cố tải một trang drupal 9 lên Hostinger nhưng tất cả những gì tôi nhận được là cảnh báo này. Tôi sử dụng Trình soạn thảo để thiết lập trang web trong máy chủ wamp64 của mình [máy chủ cục bộ] và tôi sử dụng dịch vụ tải lên trong hostinger để tải tệp zip chứa thư mục gốc của mình lên. tôi hiểu rằng ở đó. có 1 hoặc nhiều tệp bị thiếu ở đây nhưng tôi không chắc tệp nào và cách tải chúng ở nơi cần đến. Bất cứ ai có thể chỉ cho tôi đi đúng hướng hoặc tốt hơn, giải thích cho một người giả như tôi có gì sai và cách khắc phục. Xin vui lòng. Đây là lời cảnh báo

Cảnh báo. yêu cầu [/home/u109xxxxx/domains/xxxxx-is. com/public_html/. /nhà cung cấp/tự động tải. php]. Không thể mở luồng. Không có tệp hoặc thư mục như vậy trong /home/u109xxxxx/domains/xxxxx-is. com/public_html/autoload. php trên dòng 16

Lỗi nghiêm trọng. Lỗi chưa xử lý. Yêu cầu mở không thành công '/home/u109xxxxx/domains/xxxxx-is. com/public_html/. /nhà cung cấp/tự động tải. php' [bao gồm_path='. /opt/alt/php80/usr/share/lê. /opt/alt/php80/usr/share/php. /usr/chia sẻ/lê. /usr/share/php'] trong /home/u109xxxxx/domains/xxxxx-is. com/public_html/autoload. php. 16 Dấu vết ngăn xếp. #0 /home/u109xxxxx/miền/xxxxx-là. com/public_html/index. php[14]. require_once[] #1 {main} được đưa vào /home/u109xxxxx/domains/xxxxx-is. com/public_html/autoload. php trên dòng 16

Đặt một tệp có tên là nhà soạn nhạc. json ở thư mục gốc của kho lưu trữ gói của bạn, chứa thông tin này

{
    "name": "your-vendor-name/package-name",
    "description": "A short description of what your package does",
    "require": {
        "php": ">=7.4",
        "another-vendor/package": "1.*"
    }
}

Đây là thông tin cực kỳ tối thiểu mà bạn phải cung cấp

Để biết thêm chi tiết về cách đặt tên gói và các trường bạn có thể sử dụng để ghi lại gói của mình tốt hơn, hãy xem trang giới thiệu

Xác thực tệp

Chạy composer validate để kiểm tra xem tệp của bạn có lỗi cú pháp không

Cam kết tệp

Thêm composer.json vào kho lưu trữ git hoặc VCS khác của bạn và cam kết nó

xuất bản nó

Đăng nhập hoặc đăng ký trên trang web này, sau đó nhấn nút gửi trong menu

Khi bạn đã nhập URL kho lưu trữ công khai của mình vào đó, gói của bạn sẽ được tự động thu thập dữ liệu theo định kỳ. Bạn chỉ cần đảm bảo rằng bạn giữ nhà soạn nhạc. tệp json được cập nhật

Chia sẻ mã riêng tư

Sử dụng Private Packagist nếu bạn muốn chia sẻ mã riêng dưới dạng gói Composer với đồng nghiệp hoặc khách hàng mà không xuất bản nó cho mọi người trên Packagist. tổ chức. Packagist riêng cho phép bạn quản lý kho lưu trữ Trình soạn thảo riêng của mình với xác thực theo người dùng, quản lý nhóm và tích hợp trong các hệ thống kiểm soát phiên bản

Để 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 monolog/monolog, 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 Trình soạn thảo

php composer.phar update
0. 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 update
2

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

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

{
    "require": {
        "monolog/monolog": "2.0.*"
    }
}

Như bạn có thể thấy, lấy một đối tượng ánh xạ tên gói [e. g. monolog/monolog] đến các ràng buộc phiên bản [e. g.

php composer.phar update
7]

Trình soạn thảo 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 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 monolog/monolog đã được đăng ký trên Packagist. tổ chức. [Đọc thêm 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à

php composer.phar install
1. Một người có thể tên là
php composer.phar install
2 trong khi người kia có thể là
php composer.phar install
3

Đọ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 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. Điều này có nghĩa là bất kỳ phiên bản nào trong nhánh phát triển

php composer.phar install
5 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 [
php composer.phar install
6]

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. tổ chức [thêm ]

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

php composer.phar install
9 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

Đ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 kho lưu trữ 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ác phiên bản phụ thuộc giống nhau [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. Điều này sẽ tải xuống 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
    php composer.phar update monolog/monolog [...]
    0

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
php composer.phar update monolog/monolog [...]
2 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 update
2 của bạn để 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, 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ụ 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.

Cài đặt từ
php composer.phar update
2

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 được yêu cầu bởi tệp
php composer.phar update
0 của mình, 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 được đồng bộ hóa với tệp
php composer.phar update
2 của bạn

________số 8_______

Cập nhật các 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 nhận các phiên bản mới nhất của phần phụ thuộc 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. 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ố

php composer.phar update monolog/monolog [...]

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í Composer 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

  • {
        "autoload": {
            "psr-4": {"Acme\\": "src/"}
        }
    }
    5 đạ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.
    {
        "autoload": {
            "psr-4": {"Acme\\": "src/"}
        }
    }
    6. Để yêu cầu phiên bản 64 bit của php, bạn có thể yêu cầu gói
    {
        "autoload": {
            "psr-4": {"Acme\\": "src/"}
        }
    }
    7

  • {
        "autoload": {
            "psr-4": {"Acme\\": "src/"}
        }
    }
    8 đạ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. ,
    {
        "autoload": {
            "psr-4": {"Acme\\": "src/"}
        }
    }
    9

  • php composer.phar dump-autoload
    0 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, bạn nên đặt ràng buộc thành
    php composer.phar dump-autoload
    1. Một ví dụ về tên gói mở rộng là
    php composer.phar dump-autoload
    2

  • php composer.phar dump-autoload
    3 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 dump-autoload
    4,
    php composer.phar dump-autoload
    5,
    php composer.phar dump-autoload
    6,
    php composer.phar dump-autoload
    7,
    php composer.phar dump-autoload
    8,
    php composer.phar dump-autoload
    9,
    $loader = require __DIR__ . '/vendor/autoload.php';
    $loader->addPsr4['Acme\\Test\\', __DIR__];
    0,
    $loader = require __DIR__ . '/vendor/autoload.php';
    $loader->addPsr4['Acme\\Test\\', __DIR__];
    1

Bạn có thể sử dụng để lấy danh sách các gói nền tảng có sẵn tại địa phương của mình

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

$loader = require __DIR__ . '/vendor/autoload.php';
$loader->addPsr4['Acme\\Test\\', __DIR__];
3. 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

require __DIR__ . '/vendor/autoload.php';

$log = new Monolog\Logger['name'];
$log->pushHandler[new Monolog\Handler\StreamHandler['app.log', Monolog\Logger::WARNING]];
$log->warning['Foo'];

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 một trường vào

php composer.phar update
0

{
    "autoload": {
        "psr-4": {"Acme\\": "src/"}
    }
}

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

$loader = require __DIR__ . '/vendor/autoload.php';
$loader->addPsr4['Acme\\Test\\', __DIR__];
6

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

$loader = require __DIR__ . '/vendor/autoload.php';
$loader->addPsr4['Acme\\Test\\', __DIR__];
7 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à
$loader = require __DIR__ . '/vendor/autoload.php';
$loader->addPsr4['Acme\\Test\\', __DIR__];
9 chứa lớp monolog/monolog0

Sau khi thêm trường, bạn phải chạy lại lệnh này

php composer.phar dump-autoload

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

$loader = require __DIR__ . '/vendor/autoload.php';
$loader->addPsr4['Acme\\Test\\', __DIR__];
3. Xem phần để 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

$loader = require __DIR__ . '/vendor/autoload.php';
$loader->addPsr4['Acme\\Test\\', __DIR__];

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 để 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 monolog/monolog5, 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 để cài đặt tự động tải PHP?

Phương pháp 1. Nhập Lệnh trên thiết bị đầu cuối . Ngoài ra, nhà cung cấp/tự động tải. tệp php được tạo tự động. Tệp này được sử dụng để tự động tải thư viện cho dự án PHP.

Nhà cung cấp autoload PHP nằm ở đâu?

php được trình soạn thảo tự động tạo khi các phần phụ thuộc được cài đặt hoặc cập nhật. Sau khi chạy cài đặt trình soạn thảo trong thư mục gốc của dự án, bạn sẽ tìm thấy thư mục nhà cung cấp/chứa các phụ thuộc và trình tải tự động. Vì vậy, trong mã của bạn, bạn chỉ cần bao gồm '/path/to/library/vendor/autoload .

Trình soạn thảo tự động tải PHP là gì?

Composer là trình quản lý phụ thuộc cấp ứng dụng cho PHP . Tính phụ thuộc đơn giản có nghĩa là các thư viện/gói mà ứng dụng của bạn phụ thuộc vào. Ngoài việc quản lý các phụ thuộc, trình soạn thảo cũng sẽ tự động tải các tệp cần thiết cho ứng dụng.

Tự động tải PHP ở đâu trong laravel?

tệp điều khiển php được bao gồm trong không gian tên sourceFiles\Controller . Chế độ xem nằm ngoài không gian tên này, tôi. e. trong không gian tên gốc, do đó nó được nhập vào trong đó bằng từ khóa sử dụng. Điều này sẽ tự động tải tất cả các tệp của ứng dụng của chúng tôi.

Chủ Đề