martes, 27 de enero de 2015

Uso de include() y require() en PHP

A la hora de necesitar incluir código que está contenido en otros archivos, PHP nos ofrece cuatro funciones: include(), require(), include_once(), y require_once(). A simple vista se podría decir que todas funcionan igual, sin embargo en realidad difieren entre sí por características específicas que se deben tener en cuenta a la hora de optar por alguna y que se describen a continuación:

  • include() como sugiere, incluye todo el código de un archivo que le especifiquemos para que dicho código sea evaluado por el intérprete de PHP. El archivo puede ser incluido tantas veces como deseemos y si por alguna razón  no existe o no es accesible, el script desde dónde se está llamando se continuará ejecutando y el intérprete nos arrojará una alerta.
  • include_once() hace lo mismo que include(), pero a diferencia de ésta sólo permite incluir una vez al archivo. Esto nos resulta últil para evitar conflictos con la declaración de variables y demás objetos, así como para no afectar el rendimiento de la aplicación.
  • require() hace también lo mismo que include(), pero a diferencia de la segunda si el archivo que se está llamando no existe la ejecución del script se detendrá.
  • require_once() se comporta como require(), pero como lo hace include_once() no permite que se incluya el archivo más de una vez.

Finalmente al utilizar alguna de estas sentencias es importante tener en cuenta que:

  • Las cuatro son sentencias, no son métodos; por lo cual debemos evitar colocar el nombre del archivo entre paréntesis, solo basta con colocarlo entre comillas dobles.
  • La ejecución de include_once y require_once tiende a ser más lenta que la de include y de require; por lo cual mientras el ámbito del proyecto no lo requiera es recomendable hacer uso de éstas dos últimas.
  • Como buena practica de seguridad, es recomendable que si los archivos que se incluyen manejan información sensible éstos estén  contenidos en directorios protegidos.