Переопределение сигнала завершения PHP Laravel 5 CLI

Выполняет ли PHP Laravel какую-либо очистку, когда он завершается завершить сигнал?

Например следующий код:

class MyCommand extends Command
{
    protected $signature = 'get:help';
    protected $description = 'I need help';
    public function handle()
    {
        pcntl_async_signals(true);
        pcntl_signal(SIGTERM, [$this, "gracefullyShutdown"]);
        pcntl_signal(SIGINT, [$this, "gracefullyShutdown"]);

        // Do some procedure task here, no loop.
    }

    public function gracefullyShutdown()
    {
        // Do I need to do any clean up?
        //exit(0);
    }
}

Поскольку функция сигнала завершения была переопределена, handle() продолжает работать.

Если я хочу вызвать exit(0) в gracefullyShutdown(), мне нужно освободить память или сделать что-то еще до exit(0)?

Или я могу вызвать исходную функцию завершения, например super.terminate() или что-то в этом роде? (super.terminate() это псевдокод)

Я читал про Как изящно остановить команду Laravel CLI. Но его подход состоит в том, чтобы создать цикл while(true), выйти из него и выполнить оставшийся код. Где я хочу остановиться/return в любом месте handle().

Можете ли вы объяснить немного больше о том, чего вы пытаетесь достичь? На данный момент непонятно, почему бы просто не написать handle() { return; }?

Zoe Edwards 07.03.2019 18:39
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
1
93
1

Ответы 1

Вы думали о том, чтобы просто сбросить/уничтожить сеанс?

Другие вопросы по теме