29 - Incluir un archivo externo (require_once)
Hasta ahora hemos visto que un archivo contiene todo el código (HTML y PHP), pero el lenguaje PHP nos permite crear librerías de funciones o clases que veremos más adelante.
La idea fundamental de las librerías es agrupar funciones comunes a muchas páginas, no tener que tipearlas en cada archivo, lo que supone que cuando haya que hacer cambios en esas funciones las debemos localizar y modificar y dicha modificación afectará a todos los archivos donde se las utiliza.
La implementación de librerías nos permite hacer que un sistema sea más modular y facilita su mantenimiento.
Para probar esta característica del lenguaje, implementaremos dos funciones en la página «pagina2.php» y llamaremos a dichas funciones en la «página1.php»
El código del archivo «pagina1.php» es:
<html>
<head>
<title>Problema</title>
</head>
<body>
<?php
require_once("pagina2.php");
cabeceraPagina("Titulo principal de la página");
echo "<br><br><center>Este es el cuerpo de la página<br><br></center>";
piePagina("Pie de la página");
?>
</body>
</html>
Para incluir el contenido de otro archivo, debemos utilizar la sentencia require_once pasando como parámetro el archivo a incluir:
require_once("pagina2.php");
Si el archivo no existe, se mostrará un error y no continuará la ejecución del programa PHP.
El programa continúa llamando a una función que no se encuentra implementada en este archivo sino que está en el archivo «pagina2.php»:
cabeceraPagina("Titulo principal de la página");
Luego de mostrar otros textos en la página, llamamos a una segunda función que también está implementada en el archivo pagina2.php:
piePagina("Pie de la página");
Hay que tener en cuenta que en un proyecto real, las funciones que almacena el archivo «pagina2.php» pueden ser incluidas y utilizadas en muchas otras páginas.
El código fuente del archivo «pagina2.php» es:
<?php
function cabeceraPagina($tit)
{
echo "<h1 style=\"width:100%;background:#ffff00;text-aling:center\">$tit</h1>";
}
function piePagina($tit)
{
echo "<p style=\"width:100%;background:#cccccc;text-aling:center\">$tit</p>";
}
?>
Normalmente las rutinas se tratan de archivos PHP puros, es decir que contienen sólo funciones y clases y no etiquetas HTML fijas. Es importante el lugar donde llamamos a la sentencia require_once, debe ser siempre antes de la llamada a las funciones que contiene la librería.