Escrevendo para o erro padrão

PHP:
Escrevendo para o erro padrão

Como fazer:

Em PHP, escrever no stderr pode ser alcançado usando a função fwrite() juntamente com a constante predefinida STDERR, que representa o fluxo de saída de erros.

<?php
// Escrevendo uma mensagem simples no stderr.
fwrite(STDERR, "Esta é uma mensagem de erro.\n");

Saída de amostra quando o script é executado a partir da linha de comando:

Esta é uma mensagem de erro.

Para demonstrar um uso mais prático, considere um cenário em que você está analisando a entrada do usuário e encontra dados inesperados:

<?php
$input = 'dados inesperados';

// Simulando um erro no processamento da entrada do usuário.
if ($input === 'dados inesperados') {
    fwrite(STDERR, "Erro: Entrada inesperada recebida.\n");
    exit(1); // Saindo com um valor não nulo para indicar um erro.
}

Embora as capacidades internas do PHP para lidar com stderr geralmente sejam suficientes, ao lidar com aplicações mais complexas ou desejar integrar o registro de stderr com sistemas externos, bibliotecas de terceiros como o Monolog podem ser um grande aliado. Monolog é uma biblioteca de registro que pode lidar com stderr entre muitos outros alvos (arquivos, soquetes, etc.).

Usando Monolog para escrever no stderr:

Primeiro, certifique-se de ter o Monolog instalado via Composer:

composer require monolog/monolog

Em seguida, você pode configurar o Monolog para usar o StreamHandler direcionado para php://stderr:

<?php
require 'vendor/autoload.php';

use Monolog\Logger;
use Monolog\Handler\StreamHandler;

// Criar um canal de registro
$log = new Logger('name');
$log->pushHandler(new StreamHandler('php://stderr', Logger::WARNING));

// Adicionar uma mensagem de registro no stderr
$log->warning('Esta é uma mensagem de aviso.');

O código acima utiliza o Monolog para enviar uma mensagem de aviso ao stderr, o que é particularmente útil para aplicações que requerem configurações de registro detalhadas ou monitoramento de registro externo.