/ / Laravel 5.4 - SoapClient non chargé de Job - php, laravel, symfony, docker, soap

Laravel 5.4 - SoapClient non chargé depuis Job - php, laravel, symfony, docker, soap

J'ai un problème pour que SoapClient de PHP fonctionne dans mon travail Laravel. J'ai créé un travail en file d'attente où j'importe le SoapClient avec use SoapClient mais Laravel n'est pas capable de le trouver.

Mais lorsque j'utilise SoapClient dans mes contrôleurs, cela fonctionne parfaitement.

J'ai vérifié phpini (): SoapClient est définitivement activé.

Des idées?

Mon code de travail:

<?php
namespace AppJobs;

use SoapClient;

use TymonJWTAuthExceptionsJWTException;
use JWTAuth;
use IlluminateBusQueueable;
use IlluminateQueueSerializesModels;
use IlluminateQueueInteractsWithQueue;
use IlluminateContractsQueueShouldQueue;
use IlluminateFoundationBusDispatchable;


class ProcessQueuedRenderRequests implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

public function __construct()
{
}

public function handle()
{
$soap = new SoapClient("http://mywsdl");
...

Errorlog:

[[2017-11-22 18:17:50] local.ERROR: SymfonyComponentDebugExceptionFatalThrowableError: Class "SoapClient" not found in /var/www/app/Jobs/ProcessQueuedRenderRequests.php:44

J'utilise Docker avec la configuration Laradock. Le joblistener ist a commencé de cette façon:

docker-compose exec workspace bash

php artisan queue:listen

Réponses:

0 pour la réponse № 1

utilisation $soap = new SoapClient("http://mywsdl"); J'ai eu le même problème une fois.


0 pour la réponse № 2

Trouvé le problème. Le savon n'était pas installé dans le conteneur d'espace de travail.

Quand je commence le joblistener comme ça ça marche:

docker-compose exec php-fpm bash php artisan queue:listen

Encore un peu étrange puisque devrait également être installé dans le conteneur d'espace de travail en fonction de mon fichier .env.