如何访问包文件形式 laravel 控制器

How to access a package file form laravel controller

我在我的 laravel 项目中使用 gabrielbull/ups-api

composer.json如下

"autoload": {
    "psr-4": {
        "App\": "app/",
        "Ups\": "vendor/gabrielbull/ups-api/src"
    },
    "classmap": [
        "database/seeds",
        "database/factories"
    ]
},

控制器代码如下:

use Ups\Rate;

$rate = new Ups\Rate($accessKey, $userId, $password);

但是我收到一个错误 Class 'App\Http\Controllers\Ups\Rate' 未找到

您的控制器找不到 Ups\Rate。

你应该可以做到:

$rate = new Rate($accessKey, $userId, $password);

如果不是:您应该能够使用以下代码快速调试。

require __DIR__ . '/vendor/autoload.php'
use Ups\Rate;
new Rate()
echo Rate::class; // output

它是一个 PHP 包,所以一旦您通过 composer 安装它,它就已经自动加载了。您不必弄乱 composer.json 文件。安装后 运行:

composer dumpautoload