Php composer的哪个命名空间配置

Php composer的哪个命名空间配置,php,composer-php,phpmailer,Php,Composer Php,Phpmailer,我试图通过composer使用PHPMailer 我正在为我的应用程序使用命名空间和PSR-4自动加载 我的文件组织是这样的 -bin -controllers - Controller.php (namespace bin\controllers) -vendor -phpmailer -phpmailer -src PHPMailer.php (namespace HPMailer\PHPMailer) 在composer

我试图通过composer使用PHPMailer

我正在为我的应用程序使用命名空间和PSR-4自动加载

我的文件组织是这样的

-bin
  -controllers
    - Controller.php (namespace bin\controllers)
  -vendor
    -phpmailer
      -phpmailer
       -src
         PHPMailer.php (namespace HPMailer\PHPMailer)
在composer.json中,我写了这个

"autoload": {
    "psr-4": {"bin\\vendor\\phpmailer\\": "bin/vendor/phpmailer/phpmailer/src/PHPMailer.php"}
}
但是当我使用

<?php

namespace bin\controllers;

use bin\vendor\phpmailer\PHPMailer;

abstract class Controller {

    public function __construct()
    {
        $mail = new PHPMailer();
    }
}

你把路径和;在大多数情况下,他们是独立的,但PSR-4和朋友们帮助将一个映射到另一个

PHPMailer仅支持6.0版之后的名称空间,该版本尚未发布,当然您可以使用预发布版本

use bin\vendor\phpmailer\PHPMailer;
应该是:

use PHPMailer\PHPMailer\PHPMailer;
use
关键字用于将实体从另一个名称空间导入当前名称空间-请注意,这在概念上不同于将文件包含在
include
/
require

看起来您在自己的应用程序中也混合了名称空间-通常您会使用基于
\
模式的名称空间,因此您的示例控制器可能是:

namespace MyCompany\MyProject;

class MyMailController...
或者,您可以在自己的项目中使用多个名称空间,如下所示:

namespace MyCompany\MyProject\Controllers;

class Mail...

这将定义
MyCompany\MyProject\Controllers\Mail
类。

我的错误,感谢您快速正确的回答:)