Da trilha de PHP Este conceito ainda não saiu como card do dia. ir para o card de hoje

PHP Módulos Básico

include e require

Em PHP, include e require permitem inserir o conteúdo de um arquivo dentro de outro, como se o código fosse colado no local. A diferença principal está no tratamento de erros: include gera um aviso (Warning) e o script continua; require gera um erro fatal (Fatal Error) e interrompe a execução. Por isso, use require para arquivos essenciais (como configurações ou funções) e include para partes opcionais (como um banner ou rodapé).

As variantes include_once e require_once garantem que o arquivo seja incluído apenas uma vez, mesmo que a instrução apareça várias vezes. Isso evita redefinições de funções ou classes, que causariam erro fatal. São especialmente úteis em projetos com múltiplos arquivos que podem se incluir mutuamente.

O caminho do arquivo pode ser relativo ou absoluto. Caminhos relativos são resolvidos com base no diretório de trabalho atual ou no include_path, o que pode causar confusão. Para evitar problemas, use a constante mágica __DIR__, que contém o diretório do arquivo atual. Assim, require __DIR__ . '/config.php' sempre encontrará o arquivo independentemente de onde o script for executado.

Pontos-chave

  • include emite um aviso e continua; require emite erro fatal e para o script.
  • include_once e require_once incluem o arquivo apenas uma vez, evitando redefinições.
  • Use __DIR__ para montar caminhos absolutos e evitar dependência do diretório atual.
  • Prefira require para dependências obrigatórias e include para conteúdo opcional.
  • Caminhos relativos podem falhar se o script for chamado de outro diretório.
exemplo_include_require.php
<?php
// exemplo_include_require.php

// Define o caminho absoluto para a pasta atual
$baseDir = __DIR__;

// Inclui um arquivo de funções (essencial, então require)
require $baseDir . '/funcoes.php';

// Inclui um cabeçalho (opcional, então include)
include $baseDir . '/cabecalho.php';

// Usa uma função definida no arquivo incluído
echo saudacao('Maria') . "\n";

// Tenta incluir um arquivo que não existe com include
include $baseDir . '/nao_existe.php';
echo "Esta linha será executada mesmo com o aviso.\n";

// Com require_once, garantimos que funcoes.php não seja incluído novamente
require_once $baseDir . '/funcoes.php';
echo "Fim do script.\n";
?>

Exercícios

  1. 1
    Fácil

    Incluindo uma saudação

    Crie dois arquivos: saudacao.php que define uma função ola($nome) retornando "Olá, $nome!", e index.php que inclui esse arquivo com require e exibe o resultado para o nome "Ana". Use __DIR__ para montar o caminho.

    Resolver
  2. 2
    Médio

    Evitando inclusão duplicada

    Crie um arquivo config.php que define a constante VERSAO como '1.0'. Em app.php, inclua config.php com require e depois tente incluí-lo novamente com include. Exiba o valor de VERSAO. Em seguida, use require_once para incluir config.php uma terceira vez e mostre uma mensagem 'Configuração carregada uma única vez.'. O script deve rodar sem erros fatais.

    Resolver
  3. 3
    Desafio

    Sistema de templates com caminhos seguros

    Crie uma função renderizar($template, $dados) que inclui um arquivo de template da pasta templates/ usando __DIR__ para montar o caminho. A função deve usar include para que, se o template não existir, exiba uma mensagem de erro amigável e continue. Os dados devem ser extraídos para variáveis locais antes da inclusão. Crie dois templates: home.php que exibe "Bem-vindo, $nome!" e sobre.php que exibe "Sobre nós". No script principal, chame renderizar('home', ['nome' => 'Carlos']) e renderizar('sobre', []). Depois, tente renderizar um template inexistente e mostre a mensagem de erro. O script deve continuar após o erro.

    Resolver

Continue estudando