【问题标题】:Why my autoload.php of composer doesn't work?为什么我的作曲家 autoload.php 不起作用?
【发布时间】:2013-08-21 04:26:54
【问题描述】:

我有一个项目,我使用 Composer 并通过它导入很多东西...我需要在我的索引(项目的根目录)中使用 autoload.php,并且 istead Slim、Mongo、Twig 工作得很好。但是当我调用一个 Respect/Validation 类时它不起作用;如果我只是使用尊重/验证,错误是:

Class 'Respect\Validation\Validator' not found in (path of file when i need it).

如果我尝试在这里也需要 autoload.php 错误是:

**Warning**: require_once(vendor/autoload.php): failed to open stream: No such file or directory in (path of file when i need it)

**Fatal error**: require_once(): Failed opening required 'vendor/autoload.php' (include_path='.;C:\xampp\php\PEAR') in (path of file when i need it)

【问题讨论】:

  • 我已经在 Composer/bin 中通过 cmd... dir=$(d=$(dirname "$0"); cd "$d" $$ pwd) if command -v 'cygpath ' >/dev/null 2>&1;然后 dir=$(cygpath -m $dir); fi dir=$(echo $dir | sed 's/ /\ /g') php "${dir}/composer.phar" $* –
  • 您是否尝试过以您需要的相对方式包含文件 autoload.php?
  • 我试过了,就像我说的那样,我说 autoload.php 找不到文件,但是如果我只留下“使用”告诉我,告诉我找不到 Validator 类。
  • 您需要require_once('../../../../vendor/autoload.php')。这样包含你需要的文件。

标签: php dependencies composer-php respect-validation


【解决方案1】:

尝试使用php composer dump-autoload。它可能会解决这个问题。

【讨论】:

    【解决方案2】:

    如果您正在使用特定目录中的文件 (file.php),如下所示:

    /app/controller/validation
    

    并且您的供应商目录位于项目的基本路径中,您需要包含供应商目录的相对路径:

    ../../../vendor/autoload.php
    

    【讨论】:

      【解决方案3】:

      我做到了。 我像往常一样检查了文件和权限,但一切看起来都很好。然后我打开 autoload.php 看看……哦!我们当然有__DIR__

      我正在这样做

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

      改为

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

      这在政治上不正确,但让我暂时浪费了令人沮丧的时间。

      当然,__DIR__ 有更好的选择,比如使用基本路径等。但这对我有用。

      【讨论】:

      • 2016 ......我也搬到了 python。 :P
      【解决方案4】:

      我在使用 xampp 时遇到了同样的问题。我安装了composer并使用了:

      composer create-project --stability=dev --prefer-dist yiisoft/yii2-app-basic D:\xampp\htdocs\newapp
      

      我的问题现在解决了。

      【讨论】:

        【解决方案5】:

        我遇到了同样的问题,我通过使用最新版本的 laravel 解决了它,只需尝试以下代码来创建您的项目:

        composer create-project laravel/laravel exampleProject --prefer-dist

        这总是使用最新版本。

        【讨论】:

          【解决方案6】:

          我从项目根解决了简单的重新运行作曲家更新。 (我的案例是在Magento2上,但是错误和路径是一样的)

          【讨论】:

            【解决方案7】:

            在我的情况下,我只是忘记在 cmd 中运行命令 composer require cboden/ratchet 之前更改我的工作目录,这修复了它 cd c:\path to project\ 然后 composer require cboden/ratchet

            【讨论】:

              【解决方案8】:

              我在没有任何installupdatecomposer 的情况下解决了这个问题,只需将require_once 从子类移动到main page

              require_once 'vendor/autoload.php';
              

              【讨论】:

                猜你喜欢
                • 2013-08-31
                • 1970-01-01
                • 1970-01-01
                • 2018-12-29
                • 2017-03-13
                • 1970-01-01
                • 1970-01-01
                • 2022-11-10
                相关资源
                最近更新 更多