在 Laravel7 中自动加载自定义包

Autoloading a custom package in Laravel7

抱歉,如果我的问题看起来很基础...

我正在尝试在全新 Laravel7 安装中使用以下包。

https://github.com/phpclassic/php-shopify

就像他们提到的那样,我使用 'composer require phpclassic/php-shopify' 命令来安装这个包。它已成功完成,我在 'Vendor/phpclassic/php-shopify/' 文件夹下看到它。现在我想在我的控制器中使用它...

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use PHPShopify\ShopifySDK;

class ShopifyConnectionController extends Controller
{
    function index(Request $request){

        $config = array(
            'ShopUrl' => config('app.shopify_app_url'),
            'ApiKey' => config('app.shopify_app_api_key'),
            'SharedSecret' => config('app.shopify_app_api_secret'),
        );

        PHPShopify\ShopifySDK::config($config);
        dd($request->all());
    }
}
?>

出现以下错误...

Error
Class 'App\Http\Controllers\PHPShopify\ShopifySDK' not found 

现在我看到包不是自动加载的。我尝试使用“composer dump-autoload”命令并尝试在 composer.json 文件的自动加载部分添加文件夹路径等...我不断收到相同的错误...我还注意到“composer dump-autoload”命令显示...

Discovered Package: facade/ignition 
Discovered Package: fideloper/proxy
etc...

但不是我安装的包。那些发现的包也在同一个供应商文件夹中。那为什么当我 运行 该命令时,我的包没有被 Composer 自动加载发现?有好心人帮忙

您只是少了一个反斜杠。这会告诉自动加载器您要查找的文件不在您的控制器所在的命名空间中。

\PHPShopify\ShopifySDK::config($config);

并且由于您已经导入 ShopifySDK,因此不需要 FQCN。只需使用 class:

ShopifySDK::config($config);