无法使用composer autoload打开流

时间:2016-12-14 15:44:38

标签: php composer-php

我刚刚在probject文件夹中包含phpmailer通过编辑器运行此命令:composer require phpmailer/phpmailer在文件夹中:application/assets/

我在index.php文件中包含以下命令:

include 'application/assets/vendor/autoload.php';

但不幸的是我收到了这个错误:

  

警告:include(application / assets / vendor / autoload.php):无法打开流:第74行/var/www/html/projects/MyApp/index.php中没有此类文件或目录

这是我的应用程序的树视图:

>MyApp
    >application  
       >assets
           >vendor
               >autoload.php
    >system  
    >index.php

vendor文件夹中我composerphpmailer文件夹中,如果我手动添加phpmailer类,我没有收到任何错误,这种情况只发生在我包括作曲家自动加载。

这是autoload.php

的内容
<?php

// autoload.php @generated by Composer

require_once __DIR__ . '/composer/autoload_real.php';

return ComposerAutoloaderInit13c998efcdd189d437d19150f7ef3bc9::getLoader();

1 个答案:

答案 0 :(得分:0)

我不确定子文件夹/application/assets/中的安装是否必须,但我建议使用标准文件夹布局:

<强>步骤1 composer.json

旁边创建index.php
    \- MyApp
       \- application  
       \- system  
       \- index.php
       \- composer.json

然后将phpmailer/phpmailer添加到此composer.json文件的require部分:

{
    "require": {
        "phpmailer/phpmailer": "^5.2"
    }
}

然后运行composer update

(或者,您也可以在composer require phpmailer/phpmailer文件夹中运行MyApp。它会自动为您生成composer.json文件。

依赖项将被提取到文件夹:vendors,这意味着您的文件夹结构现在看起来像这样:

\ MyApp
  \ application  
  \ system 
  \ vendor          <-- new folder with composer autoloaders and dependencies
  \ index.php
  \ composer.json

<强>第二步 最后,将Composer Autoloader添加到index.php

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

就是这样......开始使用你的依赖:$mail = new PHPMailer;

参考: