sapi_windows_set_ctrl_handler

(PHP 7 >= 7.4.0, PHP 8)

sapi_windows_set_ctrl_handlerDefine ou remove um manipulador de evento CTRL

Descrição

sapi_windows_set_ctrl_handler(?callable $handler, bool $add = true): bool

Define ou remove um manipulador de evento CTRL, que permite que os processos CLI do Windows interceptem ou ignorem eventos CTRL+C e CTRL+BREAK. Observe que em ambientes multi-thread, isto só é possível quando a função é chamada da thread principal.

Parâmetros

handler

Uma função de chamada de retorno a ser definida ou removida. Se definida, esta função será chamada sempre que um evento CTRL +C ou CTRL +BREAK ocorrer. A função deve ter a seguinte assinatura:

handler(int $event): void
event
O evento CTRL que foi recebido; pode ser PHP_WINDOWS_EVENT_CTRL_C ou PHP_WINDOWS_EVENT_CTRL_BREAK.
Definir um handler como null faz com que o processo ignore eventos CTRL +C , mas não os eventos CTRL +BREAK .
add

Se for igual a true, o manipulador é definido. Se for false, o manipulador é removido.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Example #1 Uso Básico de sapi_windows_set_ctrl_handler()

Este exemplo mostra como interceptar eventos CTRL.

<?php
function ctrl_handler(int $event)
{
    switch ($event) {
        case PHP_WINDOWS_EVENT_CTRL_C:
            echo "CTRL+C foi pressionado\n";
            break;
        case PHP_WINDOWS_EVENT_CTRL_BREAK:
            echo "CTRL+BREAK foi pressionado\n";
            break;
    }
}

sapi_windows_set_ctrl_handler('ctrl_handler');
while (true); // repetição infinita, para que o manipulador seja disparado
?>

Veja Também