提问者:小点点

在Laravel7中自动加载自定义包


对不起,如果我的问题看起来很简单。。。

我试图在一个新的Laravel7安装中使用下面的包。

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

就像他们提到的那样,我使用了“作曲家需要php经典/php-shop ify”命令来安装这个包。它成功地完成了,我看到它在'供应商/php经典/php-shop ify/'文件夹下。现在我想用它在我的控制器...

<?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的autoload部分添加文件夹路径。json文件等。。。我一直得到同样的错误。。。我还注意到“composer dump autoload”命令显示。。。

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

但不是我安装的软件包。发现的包也位于同一供应商文件夹中。那么,为什么当我运行该命令时,Composer autoload没有发现我的包?有人好心帮忙。


共1个答案

匿名用户

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

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

因为您已经导入了ShopifySDK,所以不需要FQCN。只需使用类:

ShopifySDK::config($config);