无法加载非Laravel Composer程序包

时间:2016-04-20 13:37:37

标签: php laravel composer-php laravel-5.2

这是我第一次尝试加载没有使用Laravel服务提供商或外观的Composer软件包。

我正在尝试安装此软件包: https://github.com/mollie/mollie-api-php

我已按照步骤使用Composer安装软件包。

在我的控制器顶部,我添加了:

sysmail_add_account_sp

我收到以下错误:

  

main():无法打开所需的' ../ vendor / Mollie / API / Client.php'       (包含路径=':/应用程序/ MAMP / bin中/ PHP / php7.0.0 / LIB / PHP&#39)

无法找到该文件。即使错误中的路径是类所在的路径。我应该采取更多步骤吗?

包的结构:

enter image description here

包中的

require_once base_path('vendor/Mollie/API/Client.php');

composer.json

更新 我的控制器有这个命名空间

"autoload": {
    "psr-0": {
        "": "src/"
    }

因此,当我尝试新建课程时,显然无法在该命名空间内找到该课程。那么如何忽略1类

的命名空间

因为这不适用于此控制器:

namespace App\Http\Controllers;

1 个答案:

答案 0 :(得分:5)

正如评论中所述,Composer会为您处理自动加载 - 手动重新要求它是不必要的,实际上可能会导致问题。

  

我的控制器有一个命名空间,所以它试图从命名空间加载该类,我怎么忽略它为1个类?

您可以使用前导\来引用该类,即new \Mollie_API_Client,它将告诉PHP查看根目录而不是控制器的名称空间。

您还可以将use Mollie_API_Client;放在文件的顶部以完成类似的操作。出于这个原因,你会在很多Laravel文件的顶部看到use个语句。