在 Laravel 的控制器中使用自定义库

Use Custom Library in Controller of Laravel

我想使用 nusoap_client class 所以决定将 nusoap 库添加到我的 laravel 项目中。像其他图书馆一样,我使用 github 自述文件页面来完成它。

composer require econea/nusoap:^0.9.6

此库已添加到 ../vendor/econea/nusoap/src/nusoap.php。然后我想在我的控制器中使用它,但我尝试了很多方法来使用它,如下所示:

use SoapClient;
use vendor\econea\nusoap\src\nusoap.php;
use nusoap.php;
use nusoap;

我什至尝试在 composer.json 文件中自动加载库,但没有成功。 laravel 不断重复同样的错误。

Class 'App\Http\Controllers\nusoap_client' not found

感谢任何帮助,建议在我的代码中使用 nusoap_client 的方法或在我的 laravel 项目中使用库的正确方法。 谢谢。

我的代码:

$client = new nusoap_client('example.com/api/v1', 'wsdl');

发生这种情况是因为 class 不包含有效的命名空间。

因此,您需要使用 require 函数将此 PHP 文件导入脚本。

要在 laravel 中解决此问题,只需使用 composer 导入您的文件,例如:

"autoload": {
    "files": ["path/to/vendor/script"]
}

使用自动加载文件,您可以在项目的任何脚本 class 中实例化 class。

但是,我认为这不是处理现代 PHP 的好方法。 我知道另一个使用 SOAP 的库:https://github.com/artisaninweb/laravel-soap

它是 SoapClient http://php.net/manual/pt_BR/class.soapclient.php 的包装器,一个提供 soap 客户端的 PHP 核心 class。

希望我的贡献有用并且我的英语可以理解。

控制器顶部的正确语法应该是:

use nusoap_client;