0Pricing
PHP Academy · Lección

Inclusión y requerimiento de archivos

Divida las páginas en partes reutilizables con include y require.

Inclusión y requerimiento de archivos es una lección gratuita de PHP Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de PHP Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de PHP Academy incluye 4 lecciones en total.

Reutilización de código mediante inclusión de archivos

PHP proporciona cuatro instrucciones para incluir código de otros archivos:

  • include — incluye el archivo y muestra una advertencia si falta
  • require — incluye el archivo y genera un error fatal si falta
  • include_once — incluye el archivo solo si aún no se ha incluido
  • require_once — requiere el archivo solo si aún no se ha incluido

include y require

La diferencia principal es que la ausencia de un archivo require provoca un error fatal, mientras que la ausencia de un archivo include solo genera una advertencia:

<?php
// Fatal error if missing — use for critical files
require 'config.php';
require 'database.php';

// Warning if missing, but execution continues
include 'optional_plugin.php';

// Use __DIR__ for reliable relative paths:
require __DIR__ . '/helpers/utils.php';

include_once y require_once

Las variantes _once evitan que el mismo archivo se incluya varias veces:

<?php
// Without _once: including twice redefines functions
include 'functions.php';
include 'functions.php';  // Fatal: function redefined!

// With _once: second include is a no-op
require_once 'functions.php';
require_once 'functions.php';  // safe — skipped

// Rule: use require_once for class and function definition files

Ámbito de las variables en archivos incluidos

Los archivos incluidos comparten el ámbito del archivo que los incluye, pero no el ámbito de las funciones:

<?php
// main.php
$title = 'My Site';
require 'header.php';  // header.php can use $title

// But in a function:
function loadTemplate(): void {
    require 'header.php';  // $title is NOT accessible here!
    // Must pass data explicitly
}

Devolver valores desde archivos incluidos

Los archivos incluidos pueden devolver valores mediante la instrucción return:

<?php
// config.php content:
// return ['debug' => true, 'db_host' => 'localhost'];

// main.php:
$config = require 'config.php';
echo $config['db_host'];  // localhost

// Common pattern for configuration files that return arrays

Crear una estructura sencilla

Divida una página en archivos reutilizables para la cabecera, el contenido y el pie de página:

<?php
// index.php
$pageTitle = 'Home Page';
$bodyClass = 'home';

require_once 'partials/header.php';
?>

<main class="container">
    <h1>Welcome!</h1>
    <p>Main content goes here.</p>
</main>

<?php require_once 'partials/footer.php'; ?>

Partes parciales de plantillas

Cree archivos de vistas parciales reutilizables para los componentes repetidos:

<?php
// partials/card.php
// Expects: $card['title'], $card['body'], $card['url']
?>

<div class="card">
    <h3><a href="<?= htmlspecialchars($card['url']) ?>">
        <?= htmlspecialchars($card['title']) ?>
    </a></h3>
    <p><?= htmlspecialchars($card['body']) ?></p>
</div>

Pasar variables a las partes parciales

Pase datos a una parte parcial asignando una variable local antes de incluirla:

<?php
$articles = getArticles();

foreach ($articles as $article) {
    $card = [
        'title' => $article['title'],
        'body'  => substr($article['body'], 0, 100) . '...',
        'url'   => '/articles/' . $article['slug'],
    ];
    require 'partials/card.php';
}

include frente a la carga automática

En el PHP moderno con Composer, las clases se cargan automáticamente; no es necesario incluirlas manualmente:

<?php
// Old way (manual includes):
require 'classes/User.php';
require 'classes/Post.php';

// Modern way (Composer autoloading):
require __DIR__ . '/vendor/autoload.php';

// Classes are loaded automatically when first used
$user = new User();  // User.php loaded by autoloader
$post = new Post();  // Post.php loaded by autoloader

Seguridad: evitar el recorrido de rutas

No incluya nunca archivos basándose en datos de entrada del usuario que no hayan sido validados:

<?php
// DANGEROUS:
$page = $_GET['page'];
include $page . '.php';  // allows ../../etc/passwd

// SAFE: whitelist allowed pages
$allowed = ['home', 'about', 'contact'];
$page = $_GET['page'] ?? 'home';

if (!in_array($page, $allowed)) {
    $page = 'home';
}

include __DIR__ . '/pages/' . $page . '.php';

Configuración de include_path

Configure el include_path de PHP para poder incluir archivos sin especificar las rutas completas:

<?php
// Current include_path:
echo get_include_path();

// Add your library directory:
set_include_path(
    get_include_path() . PATH_SEPARATOR . '/var/www/lib'
);

// Now you can include without full path:
include 'helpers.php';  // found in /var/www/lib/helpers.php

Comprobación rápida

¿Cuál es la diferencia entre include y require cuando falta el archivo?

Resumen: inclusión de archivos

Resumen:

  • require — provoca un error fatal si falta; utilícelo para archivos esenciales
  • include — muestra una advertencia si falta; utilícelo para archivos opcionales
  • Las variantes _once evitan cargar un archivo dos veces
  • Los archivos incluidos comparten el ámbito de las variables de quien los llama
  • Los archivos pueden devolver valores con return
  • No incluya nunca rutas procedentes de datos del usuario; utilice únicamente una lista de rutas permitidas

Preguntas frecuentes

¿La lección «Inclusión y requerimiento de archivos» es gratis?

Sí — el texto completo de «Inclusión y requerimiento de archivos» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de PHP Academy, actualiza a CoddyKit PRO. El curso de PHP Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Inclusión y requerimiento de archivos»?

Divida las páginas en partes reutilizables con include y require. Practicas PHP Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar PHP Academy?

No se requiere experiencia previa. PHP Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Inclusión y requerimiento de archivos»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de PHP Academy?

Sí. Cada lección de PHP Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Etiquetas de PHP y sintaxis de integración
  2. HTML dinámico con bucles de PHP
  3. Inclusión y requerimiento de archivos
  4. Patrón de plantillas: separar la lógica de la vista
← Volver a PHP Academy