私はサービスクラスapp(MailService::class);
に重いロジックを書いていますが、サービスクラスからは$this->release()
を実行するか、$this->attempts()
のようにチェックしてください。Laravel - サービスクラスを柔軟にする方法
同様に、コマンド(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