我喜歡在服務類app(MailService::class);
中編寫繁重的邏輯,但是來自服務類 - 您將如何響應回作業類來執行$this->release()
或嘗試檢查如$this->attempts()
?Laravel - 如何讓Service Class變得靈活?
類似的,你將如何迴應命令(SendReminderCommand
)進入$this->error()
或$this->info()
- 這對控制器也應該是靈活的。
我想使用服務類是靈活的,因此它可以與作業類,命令甚至控制器一起使用。
例如:
作業類
class SendReminderEmail extends Job implements SelfHandling, ShouldQueue
{
use InteractsWithQueue, SerializesModels;
public function handle()
{
$mail = app(MailService::class); //service class
$this->release(10)
$this->attempts()
}
}
命令類
class SendReminderCommand extends Command
{
protected $signature = 'email:reminder';
protected $description = 'Send Reminder';
public function handle()
{
$mail = app(MailService::class); //service class
$this->info("Emails Sent");
$this->error('Something went wrong!');
}
}
你的'MailService'是否在其構造函數中執行初始化之外的其他操作? – nCrazed
@nCrazed MailService只是一個示例類名...可以是任何類class MailService {}'隨意發佈一個答案。 –
我更關心的是,在實例化它之後,您並未試圖在'MailService'實例上調用任何方法。 – nCrazed