2017-11-22 11 views
0

Laravel JobでPHPのSoapClientが動作するのに問題があります。 use SoapClientでSoapClientをインポートするキュー可能なジョブを作成しましたが、Laravelはそれを見つけることができません。Laravel 5.4 - SoapClientがJobからロードされていません

私はSoapClientを自分のコントローラーで使用すると、完璧に動作します。

私はphpini()をチェックしました:SoapClientが確実に有効になっています。

すべてのアイデア?

マイジョブコード:

<?php 
namespace App\Jobs; 

use SoapClient; 

use Tymon\JWTAuth\Exceptions\JWTException; 
use JWTAuth; 
use Illuminate\Bus\Queueable; 
use Illuminate\Queue\SerializesModels; 
use Illuminate\Queue\InteractsWithQueue; 
use Illuminate\Contracts\Queue\ShouldQueue; 
use Illuminate\Foundation\Bus\Dispatchable; 


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

public function __construct() 
{ 
} 

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

エラーログ:私はLaradock構成でドッカーを使用

[[2017-11-22 18:17:50] local.ERROR: Symfony\Component\Debug\Exception\FatalThrowableError: Class 'SoapClient' not found in /var/www/app/Jobs/ProcessQueuedRenderRequests.php:44 

。 joblistenerイストは、この方法で開始しました:

docker-compose exec workspace bash 

php artisan queue:listen 
+0

愚かな質問ですが、質問する必要があります - あなたはSoapClient呼び出しの上にいくつかの行をスナップしました。それは44行目にないので尋ねるだけです。また、キューリスナーを実行している場合は、コードを変更したときにリロードする必要があります。 –

+0

はい。私はいくつかの行をカットしました。 '新しいSoapClient()'はエラーを引き起こします。私はまたリスナーを数回リロードしようとしました。 – Benjamin

+0

phpiniをチェックしたときに、あなたのウェブサーバが使用しているものとあなたのCLIが使用しているものの両方をチェックしましたか? –

答えて

0

使用 $soap = new \SoapClient("http://mywsdl"); 私はかつて同じ問題がありました。

+0

私はそれを試みた。私のために働かなかった。 – Benjamin

0

問題が見つかりました。 Soapがワークスペースコンテナにインストールされていませんでした。私はこのようなjoblistenerを起動すると

それが動作します:

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

まだ少し奇妙にも、私の.envファイルに従って、ワークスペース・コンテナにインストールする必要があるため。

関連する問題