require(vendor/autoload.php):无法打开流

adr*_*J44 94 phpmailer composer-php

我知道这个问题已被多次发布,但对我来说这似乎是一个不同的问题.

的确,这个错误

警告:require(vendor/autoload.php):无法打开流:第3行的C:\ xampp\htdocs\site_web\send_mail.php中没有此类文件或目录

致命错误:require():在第3行的C:\ xampp\htdocs\site_web\send_mail.php中打开所需的'vendor/autoload.php'(include_path ='C:\ xampp\php\PEAR')失败

出现在我的代码开头的这一行:

require 'vendor/autoload.php';
Run Code Online (Sandbox Code Playgroud)

所以,我想我的电脑里必须有一个/vendor/autoload.php文件(我已经安装了composer并运行composer require phpmailer/phpmailer).

于是,我找了使用此文件:dir /s autoload.php在Windows命令行,发现这里什么人C:\Windows\SysWOW64\vendor\autoload.php,

但对我来说,使用autoload.php没有看到syswow64文件夹,我没有看到我在这里缺少什么.

Syn*_*hro 168

您缺少的是运行composer install,它将导入您的包并创建供应商文件夹以及自动加载脚本.

确保您的相对路径正确.例如,PHPMailer中的示例脚本位于examples/项目根目录下,因此从那里加载composer自动加载器的正确相对路径就是../vendor/autoload.php.

你找到的autoload.php C:\Windows\SysWOW64\vendor\autoload.php可能是一个全局作曲家安装 - 你通常会把你的东西放在phpcs,phpunit,phpmd等等.

  • 我如何运行作曲家安装?它不被识别为命令 (2认同)
  • 是的,谷歌云需要运行 `composer install`,然后它会读取你的 `composer.json` 文件的内容并将你的所有依赖项安装到 `vendor` 文件夹中。如果它不这样做,我只能建议阅读我指出的文档并仔细检查所有内容。这实际上是“上传”和“部署”之间的区别。 (2认同)

mbo*_*hir 26

如果在运行时也遇到错误

composer install
Run Code Online (Sandbox Code Playgroud)

只需先运行此命令

composer dump-autoload
Run Code Online (Sandbox Code Playgroud)

此命令将清除所有已编译的文件及其路径.


小智 8

首先,请确保您已经安装了作曲家。

composer install
Run Code Online (Sandbox Code Playgroud)

如果已经安装,则更新作曲家。

composer update
Run Code Online (Sandbox Code Playgroud)

  • 这个答案需要认真编辑才能对用户有所帮助。请清楚说明您的建议并提供在这种情况下有用的代码示例。 (2认同)

Ana*_*ali 8

如果你从 Github 克隆你的项目或者从其他地方得到它,你会遇到这个错误。那是因为您缺少供应商文件夹和其他文件。该供应商的文件夹中包含依赖于你的项目包。包依赖项存储在composer.json文件中,并且在推送到 Github排除了该文件夹。

只需运行以下命令即可修复此错误:

composer install

然后,您将获得项目所需的所有资产。


Nas*_*isi 7

对我来说只需先运行这个命令

composer dump-autoload
Run Code Online (Sandbox Code Playgroud)

添加供应商文件夹。

然后运行这个命令

composer update --no-scripts
Run Code Online (Sandbox Code Playgroud)

更新作曲家。


wpc*_*der 5

正确autoload.php配置:

A)快速解答

您的autoload.php路径错误。即。C:\Windows\SysWOW64\vendor\autoload.php 到目前为止:您需要将其更改为:C:\Users\<Windows User Name>\vendor\autoload.php


B)示例步骤: 我们将以facebook / php-graph-sdk为例;Package Name根据需要更改为。

  1. 安装composer.exe
  2. 打开CMD提示。+ R+类型CMD
  3. 运行此命令: composer require facebook/graph-sdk
  4. 在PHP页面中包含路径: require_once 'C:\Users\<Windows User Name>\vendor\autoload.php';
  5. 定义配置SecretsAccess Token为您的软件包...等。
  6. 快乐codinig。

C)更多细节:

在Windows上安装composer将为您的pacakges设置此默认路径。您可以在此处找到它们并包含自动加载器路径:

C:\Users\<Windows User Name>\vendor
Run Code Online (Sandbox Code Playgroud)

对于您问的相同问题;答案是Windows的WAMP Server 64 BIT的路径。

然后只需在您的PHP应用程序中更改此内容:

require_once __DIR__ . '/vendor/autoload.php'; 
Run Code Online (Sandbox Code Playgroud)

至:

require_once 'C:\Users\<Windows User Name>\vendor\autoload.php'; 
Run Code Online (Sandbox Code Playgroud)

寻找你的Windows用户名之下C:\Users\

如B)前面所述,在此之前,您需要运行以下命令:

composer require <package name>
Run Code Online (Sandbox Code Playgroud)

以facebook php SDK为例:

composer require facebook/graph-sdk
Run Code Online (Sandbox Code Playgroud)

感谢您提出这个问题;非常感谢,因为它可以帮助我解决类似的问题,并结束了本简单教程的编写。

  • 一般来说,Composer 设计用于处理_本地安装到特定项目_的软件包,因此直接包含系统或用户配置文件目录中的 autoload.php 将是_极其_不寻常的。 (3认同)

Die*_*ezú 5

首先,查看 index.php 中的路由

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

$app = require_once __DIR__.'/../bootstrap/app.php';
Run Code Online (Sandbox Code Playgroud)

在我的情况下,路线不起作用,我不得不查看目录。