Criando um método que imprime JSON como resposta com PHP

Vamos criar um simples método PHP que devolve o conteúdo em JSON, com cabeçalho e código de resposta.

Criando uma aplicação com área administrativa utilizando o Laravel

Em diversas aplicações precisamos retornar o conteúdo não só no formato JSON, mas com o cabeçalho e também com um status http code específico. Nesse artigo você confere como criar uma função simples e funcional para fazer um response json.


Primeiramente precisamos definir o conteúdo a ser convertido para um JSON, em seguida, devemos definir que o cabeçalho da página seja do tipo application/json, por fim, definimos o http status code.

Veja a função abaixo devidamente comentada.

/**
 * Imprime um array ou objeto em JSON
 *
 * @param  mixed $el
 * @param  int $httpCode
 * @return void
 */
function responseJson($el = null, int $httpCode = 200)
{
    //Definimos o cabeçalho com o tipo JSON.
    header('Content-Type: application/json', true, $httpCode);

    //Definimos o status http code.
    http_response_code($httpCode);

    //Convertemos e "printamos" o conteúdo em tela
    echo json_encode($el);
}

Agora veja o exemplo de utilização.

//Exemplo de utilização
$content = [
    'site' => 'SatellaSoft'
];

responseJson($content);

//Exemplo 2
responseJson(5);

//Exemplo 3
responseJson('not exists');

Perceba que na nossa função definimos o status code em dois lugares, uma no header e outra através da função http_response_code. Mantemos nesses dois lugares por redundância, sendo que já tivemos o problema de que no header não funcionava devido a limitação da função no servidor.


Por hora é isso, até a próxima.