Introdução: por que o code review é necessário em PHP?
Code review (revisão de código) é o processo no qual um ou mais desenvolvedores verificam o código escrito por um colega antes que ele entre no branch principal do projeto. Para desenvolvedores PHP iniciantes, essa prática pode parecer assustadora, mas na verdade é uma ferramenta poderosa de crescimento. O code review ajuda não apenas a encontrar bugs, mas também a melhorar a arquitetura, a segurança e a legibilidade do código. Neste artigo, vamos abordar o que observar ao revisar código PHP e como dar feedback para que ele seja útil, e não ofensivo.
1. O que verificar no código PHP: categorias principais
Para que a revisão seja estruturada, divida a verificação em várias áreas-chave. Isso ajuda a não perder detalhes importantes e a dar recomendações claras ao autor.
1.1. Sintaxe e padrões de codificação (PSR)
A primeira coisa que chama a atenção é o estilo do código. A comunidade PHP desenvolveu os padrões PSR (PHP Standards Recommendations), que simplificam a leitura e a manutenção do código. Verifique:
- Conformidade com
PSR-12(indentação, espaços, chaves). - Nomeação de classes (CamelCase), métodos e variáveis (camelCase).
- Ausência de espaços extras e linhas em branco.
Exemplo de estilo ruim:
class userController{function getUser($id){return $id;}}Exemplo de bom estilo (PSR-12):
class UserController{ public function getUser(int $id): ?User { return $id; }}1.2. Segurança
PHP é uma linguagem onde é fácil cometer vulnerabilidades. Verifique com especial atenção:
- Injeção SQL: use consultas preparadas (PDO ou mysqli), em vez de concatenação de strings.
- XSS (Cross-Site Scripting): escape a saída com
htmlspecialchars(). - Verificação de tipos: use tipagem estrita (
declare(strict_types=1);).
Exemplo de código inseguro:
$sql = "SELECT * FROM users WHERE id = " . $_GET['id'];$result = mysqli_query($conn, $sql);Versão segura:
$stmt = $pdo->prepare('SELECT * FROM users WHERE id = :id');$stmt->execute(['id' => (int)$_GET['id']]);1.3. Desempenho e lógica
Verifique se o código não está realizando operações desnecessárias. Por exemplo:
- Evite consultas em loops — use JOIN ou subconsultas.
- Não use
@para suprimir erros — isso esconde problemas. - Verifique se as funções não estão fazendo demais (princípio da responsabilidade única).
Exemplo de código lento:
foreach ($userIds as $id) { $user = User::find($id); // N consultas}Versão otimizada:
$users = User::whereIn('id', $userIds)->get(); // 1 consulta2. Como dar feedback: regras para iniciantes
Mesmo que você encontre muitos erros, é importante transmitir a informação de forma que o autor não a receba de forma negativa. Aqui estão alguns princípios.
2.1. Seja específico e objetivo
Em vez de "este código é ruim", escreva: "Na linha 12, é usada concatenação SQL, o que pode levar a injeção. Recomendo substituir por uma consulta preparada". Explique por que isso é um problema, em vez de apenas apontá-lo.
2.2. Use o "sanduíche" de feedback
Comece com um comentário positivo, depois aponte as deficiências e termine com um conselho construtivo. Por exemplo:
"Ótimo que você usou tipagem para os argumentos! No entanto, o método getUser() retorna uma string, e não um objeto User — isso pode quebrar a tipagem em outros lugares. Sugiro alterar o tipo de retorno para User ou null."
2.3. Ofereça alternativas, em vez de criticar
Em vez de "Remova essa gambiarra", na