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 faltarequire— incluye el archivo y genera un error fatal si faltainclude_once— incluye el archivo solo si aún no se ha incluidorequire_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 arraysCrear 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 autoloaderSeguridad: 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.phpComprobació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 esencialesinclude— 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
- Etiquetas de PHP y sintaxis de integración
- HTML dinámico con bucles de PHP
- Inclusión y requerimiento de archivos
- Patrón de plantillas: separar la lógica de la vista