Qual é o equivalente do PHP do filtro Java Servlet?
-
19-09-2019 - |
Pergunta
No lado Java, temos um filtro de servlet que lida com a autenticação. Não precisamos alterar todos os outros servlet ou JSPs para adicionar autenticação à página, a menos que a página precise de conteúdo personalizado.
Como podemos alcançar o mesmo no PHP? Não usamos nenhuma estrutura no PHP.
Solução
Não há diretamente equivalente. Sua melhor aposta é incluir um arquivo comum na parte superior e fazer essa lógica na parte superior daquele, conforme necessário. Então:
require 'common.php';
com:
if (!isset($_SESSION['userid'])) {
// authentication stuff
}
Se você quiser fazer algo no final, você tem algumas opções:
- Use um manipulador de buffer de saída com
ob_start()
; ou - Registre um retorno de chamada de desligamento com
register_shutdown_function()
.
Então:
ob_start('my_callback');
function my_callback($str) {
// do something
return $str;
}
ou
register_shutdown_function(my_callback);
function my_callback() {
// do something
}
Outras dicas
Se eu entender sua pergunta corretamente. Isso pode variar a arquitetura .. por exemplo. Crie um arquivo de inclusão que verifique se o usuário é autenticado através da sessão, se não for enviar para uma página de login. Eu acho que qualquer site com mais de 2 scripts utilizaria algum tipo de arquivo incluído e você pode colocar esse código nesse arquivo. Você pode até ter uma matriz que contém os nomes das páginas que precisam ter uma sessão de usuário válida e combinar com a solicitação URI .. várias maneiras de fazer isso .. você só precisa escolher aquele que mais se combina.