У меня есть разные функции, которые используют один и тот же мыльный клиент в laravel:
Дублированный код для мыльного клиента в этих функциях кажется неправильным.
Я попытался с файлом признака, но я, кажется, не получаю это работать таким образом.
public function getStaff()
{
// INITIALISEER DE SOAP CLIENT
$webservicesPwd = "apipwd";
$soap = new SoapClient('https://apiserver.com');
// HAAL STUDENTEN OP VIA API CALL
$result = $soap->apiFunction($webservicesPwd,2,1);
// INDIEN RESULTAAT NIET CORRECT
if(is_int($result)) {
throw new \Exception($errorMessage);
}
А также
public function getStudents()
{
// INITIALISEER DE SOAP CLIENT
$webservicesPwd = "apipwd";
$soap = new SoapClient('https://apiserver.com');
// HAAL STUDENTEN OP VIA API CALL
$result = $this->soap-someOtherApiFunction($this->webservicesPwd,3,1);
// INDIEN RESULTAAT NIET CORRECT
if(is_int($result)) {
throw new \Exception($errorMessage);
}dd($result);
}
Создайте новый класс:
class ApiNameClient {
protected $soapClient;
protected $webservicesPwd;
public function __construct() {
// initialize $soapClient and $webservicesPwd here
}
public function getStudents() {
$result = $this->soapClient->myFirstAction($this->webservicesPwd,3,1);
return $this->defendInteger($result);
}
protected function defendInteger($value) {
if(is_int($value)) {
throw new \Exception($errorMessage);
}
return $value;
}
}
Других решений пока нет …