Laravel 5.4 – 没有从Job加载SoapClient

我有一个问题让PHP的SoapClient工作在我的Laravel工作。 我use SoapClient导入SoapClient,但创build了可排队的作业,但Laravel无法find它。

但是当我在我的控制器中使用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"); ... 

错误日志:

 [[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 

我使用Laradockconfiguration的Docker。 joblistener是这样开始的:

 docker-compose exec workspace bash php artisan queue:listen 

使用$soap = new \SoapClient("http://mywsdl"); 我曾经有过同样的问题。

发现问题。 肥皂未安装在工作区容器中。

当我像这样开始joblistener它的作品:

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

仍然有点奇怪,因为也应根据我的.env文件安装在工作区容器中。