while w3schools w3school program poo example code buscador bootstrap php bootstrapping

w3schools - sample php



Fundamentos de PHP Bootstrapping (5)

Estoy escribiendo mi primera aplicación PHP. Todos hablan de tener un bootstrap.php para inicializar tu aplicación. Esto tiene sentido y he reunido uno con el que estoy feliz. Hay dos cosas que no entiendo, y que nadie parece mencionar:

  1. ¿De dónde llamo a mi boostrap? ¿Lo incluyo en cada página? Por favor, dime que hay una mejor manera ...

  2. ¿Cómo lo hago para que no se llame a mi bootstrap con más frecuencia de la necesaria? Supongo que solo debe llamarse al inicio de la aplicación o al inicio de una nueva sesión.


1: En general, el programa de arranque está en el directorio "aplicación". Se llama desde el directorio "público" que está en el mismo nivel que la aplicación (no dentro de él). El index.php dentro de la carpeta pública debe incluir bootstrap.php y ahí es donde debe configurarse Document_Root (tenga en cuenta que es posible que deba cambiar / agregar algunas rutas de inclusión para que funcione)

2: Solo debe incluirse una vez a través del archivo index.php en la carpeta pública. Simplemente incluirlo debería ser suficiente, si se hizo correctamente.

Espero que ayude.


Depende de la arquitectura de su aplicación.

Si su arquitectura es la antigua "serie de scripts php" (scripts PHP llamados directamente desde el navegador), la incluirá en la parte superior de cada script, de una forma u otra.

La mayoría de los desarrolladores (y marcos) en estos días reúnen todas sus solicitudes a través de /index.php de una forma u otra, generalmente con algunas reescrituras de URL para hacer URL bonitas y bonitas para que los usuarios las vean.

En esta época, probablemente deberías estar haciendo lo último, o al menos pensar en ello. Esto conduce a una organización mucho mejor y, lo que es más importante, le permite mantener todo su código fuera de la raíz de documentos del servidor web, lo cual es una buena práctica de seguridad por varias razones que están fuera del alcance de esta respuesta.


Depende de lo que haga su archivo bootstrap. Si es solo un archivo que establece algunas configuraciones ini y, por ejemplo, crear un entorno de ejecución sano y establecer una conexión de base de datos, simplemente basta con incluirlo con require_once en sus scripts. Si se trata de un punto de entrada único, puede configurar su servidor para filtrarle todas las solicitudes y enviarlo a los scripts de controlador adecuados.


Echa un vistazo al patrón de singleton . Puede duplicar su clase bootstrap como un contenedor de recursos, por ejemplo:

$bootstrap = Bootstrap::getInstance(); $dbConn = $bootstrap->getPdoDbh();

Puede include o require el archivo, o usar el autocargador y asegurarse de que tiene una llamada para crear una instancia del objeto en todas sus páginas. Incluso podría tener una llamada a getInstance() en la parte inferior del archivo, después de la definición de la clase.

O puede usar el enrutamiento basado en URL y hacer que todas sus solicitudes pasen por un único archivo index.php, como lo hace Zend Framework. O mejor aún, use Zend Framework .

Esta respuesta asume que estás haciendo OOP w / PHP> = 5, que realmente es el camino a seguir.


Uno de los medios más elegantes para arrancar una aplicación PHP es hacerlo usando Composer.

Hoy en día, casi todas las bibliotecas PHP usan Composer, y requerir un archivo de tipo Bootstrap.php es tan simple como:

"autoload": { "psr-4": { "Acme//Rocket//": "src/" }, "files": ["src/Bootstrap.php"] },

Tenga en cuenta la segunda propiedad, los files . (El primero, psr-4 , es la carga automática estándar PSR-4 y se incluye solo para hacer que el ejemplo sea más real).

Incluir el archivo bootstrap de esta manera no hace la suposición ingenua de que la aplicación PHP se ejecuta en un contexto de servidor web, a través de index.php , o similar; la aplicación podría muy bien ser una aplicación de línea de comandos (o ambas, como Laravel / Artisan). El arranque a través del cargador automático hace que esta distinción no sea un problema.