Modularização no PHP: Como Usar include, require e Suas Variantes na Prática

Include vs Require no PHP: Qual Usar? Guia Completo

Seja bem-vindo a mais uma etapa fundamental do nosso curso de PHP. Nos tutoriais passados, escrevemos scripts simples com uma ou duas funções. Mas o mundo real do desenvolvimento não funciona assim.

Quando você for montar um sistema web corporativo, um e-commerce ou criar a lógica de um jogo no backend, você facilmente criará dezenas ou até centenas de funções. Imagine amontoar todas essas regras de negócio num único bloco de código dentro de um único arquivo .php?

Ia virar o famoso "código espaguete": impossível de ler, terrível de dar manutenção e um pesadelo para trabalhar em equipe. É por isso que precisamos aprender a incluir arquivos externos.

O que são include e require no PHP?

No PHP, as instruções include e require servem para importar o conteúdo de um arquivo para dentro de outro. A principal diferença é que o include gera um aviso (Warning) e continua rodando se o arquivo faltar, enquanto o require gera um erro fatal (Fatal Error) e trava a execução do sistema.

Na Prática: A Biblioteca de Matemática

Para manter tudo organizado, nós separamos responsabilidades. Vamos criar um arquivo isolado chamado matematica.php que servirá como uma "biblioteca" apenas para abrigar nossos cálculos.

<?php
// Arquivo: matematica.php
// Este arquivo não tem HTML, apenas lógica.

function soma($a, $b) {
    return $a + $b;
}

function sub($a, $b) {
    return $a - $b;
}

function multiplicacao($a, $b) {
    return $a * $b;
}

function divisao($a, $b) {
    // Tratamento básico de erro para evitar divisão por zero
    if ($b == 0) return "Erro: Divisão por zero";
    return $a / $b;
}
?>

Agora, no nosso arquivo principal (vamos chamá-lo de home.php), nós construímos o formulário visual e apenas "puxamos" a inteligência matemática usando o comando include.

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <title>Sistema Calculadora - PHP Progressivo</title>
</head>
<body style="font-family: Arial; padding: 20px;">

    <h2>Painel de Cálculo</h2>
    <form action="" method="get">
        Número 1: <input type="number" step="any" name="num1" required /><br /><br />
        Número 2: <input type="number" step="any" name="num2" required /><br /><br />
        <input type="submit" name="submit" value="Calcular" style="padding: 10px; cursor: pointer;" />
    </form> 

    <?php
    // Importando nossas funções. É como se o código de 'matematica.php' fosse colado aqui!
    include "matematica.php";

    // Verifica se os dados foram enviados para evitar erros de 'Undefined Array Key'
    if (isset($_GET['num1']) && isset($_GET['num2'])) {
        
        $a = floatval($_GET['num1']);
        $b = floatval($_GET['num2']);
        
        echo "<div style='margin-top:20px; background:#f1f5f9; padding:15px;'>";
        echo "<strong>Soma:</strong> " . soma($a, $b) . "<br />";
        echo "<strong>Subtração:</strong> " . sub($a, $b) . "<br />";
        echo "<strong>Multiplicação:</strong> " . multiplicacao($a, $b) . "<br />";
        echo "<strong>Divisão:</strong> " . divisao($a, $b) . "<br />";
        echo "</div>";
    }
    ?>

</body>
</html>

E veja o resultado! Aparece a soma, subtração, multiplicação e divisão perfeitamente. Note como nossa home.php ficou limpa e focada apenas na interface (HTML) e no recebimento de dados.

💡 Dica de Mestre (Diretórios): Se o arquivo que você quer incluir estiver dentro de uma pasta (por exemplo, na pasta de um nível de um jogo), você deve apontar o caminho correto: include "level2112/level.php";. E sim, o PHP permite até incluir arquivos de servidores externos informando a URL completa, mas por questões rigorosas de segurança, a maioria dos servidores bloqueia isso nativamente.

Sua arquitetura de pastas está uma bagunça? 🏗️

No começo, jogar todos os arquivos na mesma pasta funciona. Mas quando seu projeto cresce e você precisa implementar o padrão MVC (Model, View, Controller), você precisa de uma base sólida de como a comunicação entre scripts funciona.

Acelere sua curva de aprendizado. Tenha acesso à nossa biblioteca completa de apostilas com projetos guiados!

Apostilas do Mega Pack Progressivo

O Caos da Duplicidade: Por que usar include_once?

Imagine a seguinte arquitetura num jogo ou sistema complexo:

  • Temos um arquivo A.php. Nele, damos include no B.php e no C.php.
  • Porém, lá dentro do B.php, o desenvolvedor também deu um include no C.php para usar uma função.

Você percebeu o problema? O PHP vai tentar carregar o arquivo C.php duas vezes. Na primeira, através do arquivo B. Na segunda, diretamente no arquivo A. Isso vai gerar um erro terrível informando que "a função tal já foi declarada" (Cannot redeclare function).

Para evitar essa dor de cabeça, criaram a variante include_once (incluir apenas uma vez). Com ele, o PHP verifica a memória: "Opa, eu já incluí o C.php antes? Se sim, ignora esse comando e segue a vida".

O Golpe Final: require_once (O Padrão Ouro)

Mas nós ainda temos uma falha de segurança na nossa lógica. O include e o include_once apenas tentam carregar o arquivo. Se o arquivo tiver sido deletado acidentalmente, o PHP avisa que não achou (Warning), mas continua rodando o resto do script!

Isso pode gerar falhas catastróficas. Imagine seu código tentando processar o pagamento de um cliente sem ter conseguido carregar o arquivo de segurança do cartão de crédito?

⚠️ Alerta Sênior de Arquitetura

Se um arquivo for absolutamente imprescindível para o funcionamento da página (como um arquivo de conexão com Banco de Dados, chaves de API PIX, ou configuração de LGPD), NUNCA use include. Use sempre require_once. Ele garante que o arquivo só será carregado uma vez e, se não for encontrado, ele causa um "Fatal Error", parando o servidor imediatamente e protegendo o sistema de executar lógica quebrada.

Eleve seu Código ao Nível Profissional 🚀

Chega de decorar comandos sem entender a lógica por trás. Nossa Apostila de PHP Progressivo foi desenhada para te transformar em um resolvedor de problemas. Estude offline, no seu ritmo, com dezenas de exercícios resolvidos passo a passo, totalmente livre de anúncios.

Baixar Apostila de PHP Agora

📚 Consolide seu Conhecimento

Entender a inclusão de arquivos é o primeiro passo para criar sistemas em MVC. Continue sua jornada dominando os tópicos abaixo:

Nenhum comentário: