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

时间:2018-12-17 17:33:22

标签: php laravel nusoap laravel-controller

我想使用nusoap_client类,因此决定将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不断重复同样的错误。

  

找不到类'App \ Http \ Controllers \ nusoap_client'

我非常感谢您提供的任何帮助,这些帮助建议了在我的代码中使用nusoap_client的方法或在laravel项目中使用正确的库的方法。 谢谢。

我的代码:

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

2 个答案:

答案 0 :(得分:1)

之所以发生这种情况,是因为此类不包含有效的名称空间。

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

要在laravel中解决此问题,只需使用以下作曲家导入文件即可:

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

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

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

它是SoapClient http://php.net/manual/pt_BR/class.soapclient.php的包装,SoapClient是提供肥皂客户端的PHP核心类。

希望我的贡献是有用的,我的英语也可以理解。

答案 1 :(得分:1)

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

use nusoap_client;