問題
使用Laravel 的 Queue Job,執行後出現錯誤:
local.ERROR: syntax error, unexpected ')' {"exception":"[object] (ParseError(code: 0): syntax error, unexpected ')' at /home/vagrant/code/....../vendor/laravel/framework/src/Illuminate/Bus/BusServiceProvider.php:51)
報錯的問題是在:/vendor/laravel/framework/src/Illuminate\Bus/BusServiceProvider.php
:
protected function registerBatchServices()
{
$this->app->singleton(BatchRepository::class, DatabaseBatchRepository::class);
$this->app->singleton(DatabaseBatchRepository::class, function ($app) {
return new DatabaseBatchRepository(
$app->make(BatchFactory::class),
$app->make('db')->connection(config('queue.batching.database')),
config('queue.batching.table', 'job_batches'), // 這一行
);
});
}
花了好幾個小時都沒找到問題所在,最後發現是php版本問題,使用社群提供的homestead預設的php版本是7.2,而laravel 8 要求的版本是7.3, PHP 7.3以下不支援函式最後一個引數末尾有逗號。
修改程式使用的php版本,在Homestead.yaml配置檔案中,指定php版本號:新增php: "7.3"
。
參考
github.com/laravel/framework/issue...
本作品採用《CC 協議》,轉載必須註明作者和本文連結