use*_*765 1 php autoload laravel composer-php
对不起,如果我的问题看起来很基本...
我正在尝试在全新的 Laravel7 安装中使用以下包。
https://github.com/phpclassic/php-shopify
就像他们提到的那样,我使用“composer require phpclassic/php-shopify”命令来安装这个包。它成功完成,我在“供应商/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());
}
}
?>
Run Code Online (Sandbox Code Playgroud)
我收到以下错误...
Error
Class 'App\Http\Controllers\PHPShopify\ShopifySDK' not found
Run Code Online (Sandbox Code Playgroud)
现在我看到包不是自动加载的。我尝试使用“composer dump-autoload”命令并尝试在composer.json文件的自动加载部分中添加文件夹路径等......我一直收到同样的错误......我还注意到“composer dump-autoload”命令显示...
Discovered Package: facade/ignition
Discovered Package: fideloper/proxy
etc...
Run Code Online (Sandbox Code Playgroud)
但不是我安装的软件包。那些发现的包也在同一个供应商文件夹中。那么为什么我运行该命令时 Composer 自动加载没有发现我的包?有人好心帮助。
你只是缺少一个反斜杠。这告诉自动加载器您要查找的文件不在您的控制器所在的命名空间中。
\PHPShopify\ShopifySDK::config($config);
Run Code Online (Sandbox Code Playgroud)
而且由于您已经导入,ShopifySDK因此不需要 FQCN。只需使用该类:
ShopifySDK::config($config);
Run Code Online (Sandbox Code Playgroud)