关于作曲家php:require(vendor / autoload.php):无法打开流

require(vendor/autoload.php): failed to open stream

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

确实,这个错误

Warning: require(vendor/autoload.php): failed to open stream: No such file or directory in C:\xampp\htdocs\site_web\send_mail.php on line 3

Fatal error: require(): Failed opening required 'vendor/autoload.php' (include_path='C:\xampp\php\PEAR') in C:\xampp\htdocs\site_web\send_mail.php on line 3

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

1
require 'vendor/autoload.php';

因此,我想我的计算机中一定有一个/vendor/autoload.php文件(我已经安装了作曲器并运行composer require phpmailer/phpmailer)。

因此,我在Windows命令行中使用dir /s autoload.php查找了该文件,并在此处找到了一个文件:C:\Windows\SysWOW64\vendor\autoload.php

但是对我而言,syswow64文件夹与autoload.php无关,我看不到这里缺少的内容。


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

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

您在C:\Windows\SysWOW64\vendor\autoload.php中找到的autoload.php可能是全局作曲家安装-您通常会在其中放置phpcs,phpunit,phpmd等内容。

composer update是不同的东西,可能不是您想要使用的东西-如果您的代码已使用当前的软件包版本进行了测试,则运行update可能会导致中断,可能需要进一步的工作和测试,因此请不要运行< x5>,除非您有特殊原因。为了进一步说明-您可能应该只在本地运行composer update,而不应该在服务器上运行。

我经常看到有人抱怨人们不能使用作曲家,因为他们不能在服务器上运行它(例如,因为它是共享的并且没有外壳访问权限)。在这种情况下,您仍然可以使用composer:在本地运行(没有这种限制的环境),然后上载它与所有其他PHP脚本一起生成的本地供应商文件夹。


如果在运行时也收到错误

1
composer install

只需先运行此命令

1
composer dump-autoload

该命令将清除所有编译文件及其路径。


@Bashir几乎帮助了我,但我需要:

1
composer update --no-scripts

我在这里找到了答案:
https://laracasts.com/discuss/channels/general-discussion/fatal-error-class-illuminatefoundationapplication-not-found-in-pathtoprojectbootstrapappphp-on-line-14?page=0


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

1
composer install

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

1
composer update


正确的autoload.php配置:

A)快速解答:

您的autoload.php路径错误。即。 C:\Windows\SysWOW64\vendor\autoload.php
迄今为止:您需要将其更改为:C:\Users\\vendor\autoload.php

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

  • 安装composer.exe
  • 打开CMD提示。 + R +类型CMD
  • 运行此命令:composer require facebook/graph-sdk
  • 在您的PHP页面中包含路径:require_once 'C:\Users\\vendor\autoload.php';
  • 为包定义配置SecretsAccess Token ...等。
  • 快乐codinig。
  • C)更多细节:

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

    1
    C:\Users\<Windows User Name>\vendor

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

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

    1
    require_once __DIR__ . '/vendor/autoload.php';

    至:

    1
    require_once 'C:\Users\<Windows User Name>\vendor\autoload.php';

    C:\Users\下找到Windows用户名

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

    1
    composer require <package name>

    以facebook php SDK为例:

    1
    composer require facebook/graph-sdk

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


    当我从git克隆项目并想第一次运行时,这个问题发生了。我在目录中运行了composer install及其对我的工作。


    如果您是从Github克隆项目或从其他地方获得项目,则将遇到此错误。那是因为您缺少供应商文件夹和其他文件。供应商文件夹包含与您的项目有关的软件包。软件包依赖关系存储在composer.json文件中,并且在推送到Github时不包含该文件夹。

    只需运行以下命令即可解决此错误:

    composer install

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


    运行composer update。而已


    我的机器上有以下路径:

    1
    C:/xampp5.0/htdocs/project-recordando-symfony/project-recordando-symfony

    然后我运行composer install或/和composer update,它返回此错误:

    1
    ErrorException ZipArchive::extractTo...

    该错误是因为您的路径太长,我更改为:

    1
    C:/xampp5.0/htdocs/p-symfony/*

    和工作!


    在您的项目文件夹中,缺少供应商文件夹,因此出现以下错误:

    Warning: require(vendor/autoload.php): failed to open stream: No such file or directory in

    当您通过git下载项目时,下载的项目没有供应商文件夹

    您需要/vendor,因为您的所有软件包都在那里,包括Laravel使用的所有类。供应商目录包含您的Composer依赖项。

    解决方法很简单,只需运行以下命令:

    1
    2
    composer update --no-scripts
    composer update
    • composer update --no-scripts它将跳过在composer.json文件中定义的脚本的执行。
    • composer update它将更新composer.json文件中指定的依赖关系。

    使用此命令,您将在项目中重新创建vendor文件夹,然后项目将开始正常工作。


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

    1
    2
    3
    require __DIR__.'/../vendor/autoload.php';

    $app = require_once __DIR__.'/../bootstrap/app.php';

    在我的情况下,该路由不起作用,我必须查看目录。


    我可以通过删除作曲家并重新安装正确的方法来解决。这是我所做的:

    • sudo apt删除作曲家
    • sudo apt自动清除&& sudo apt autoremove
    • 按照以下说明进行全局安装:https://getcomposer.org/doc/00-intro.md
      从以下位置下载:https://getcomposer.org/installer
      全局安装:mv composer.phar / usr / local / bin / composer
      (注意:我必须将我的移动到mv composer.phar / usr / bin / composer)

    然后,我得以重新安装作曲家。在此问题的底部找到了我的答案:https://github.com/composer/composer/issues/5510


    使用ex的必需库创建composer.json文件:

    1
    2
    3
    4
    5
    {
       "require": {
           "mpdf/mpdf":"^6.1"
        }
    }

    在composer.json存在的地方执行以下命令:

    1
    composer install

    如果是Drupal:

    使用drupal的Web根文件夹包含ex的自动加载功能:

    1
    2
    define('DRUPAL_ROOT', getcwd());
    require_once DRUPAL_ROOT . '/vendor/autoload.php';

    对于其他系统:
    使用根文件夹变量或位置来包含autoload.php


    如果您有克隆的存储库并尝试设置该时间,则将在根目录中存在一个名为" vendor"的目录,并尝试设置该时间。

    " .gitingore"文件已编写了不包含GIT上供应商目录的代码,因此在克隆GIT之后,您的项目将面临缺少供应商目录的问题。

    添加供应商目录后,您的项目将再次开始工作。


    更改php.ini上的auto_prepend_file属性

    1
    2
    3
    ; Automatically add files before PHP document.
    ;http://php.net/auto-prepend-file
    auto_prepend_file =