Я пришел из C ++ фона и привык к Приобретение ресурсов - это Инициализация (RAII) , что ресурс получается в конструкторе и освобождается в деструкторе.
Так что я считаю, что это Немного трудно понять этот laravel код, который отправляет задание в деструкторе, https://github.com/laravel/framework/blob/6.x/src/Illuminate/Foundation/Bus/PendingDispatch.php
/** * Handle the object's destruction. * * @return void */ public function __destruct() { app(Dispatcher::class)->dispatch($this->job); }
Например, что если в коде отправки будет сгенерировано исключение? Разве нет лучшего места для отправки работы, чем в __destruct?
__destruct
И мой следующий вопрос: RAII все еще применяется в php?