Configuración
Descripción general
Flight proporciona una forma sencilla de configurar varios aspectos del framework para adaptarse a las necesidades de tu aplicación. Algunos están establecidos por defecto, pero puedes sobrescribirlos según sea necesario. También puedes establecer tus propias variables para usarlas en toda tu aplicación.
Entendimiento
Puedes personalizar ciertos comportamientos de Flight estableciendo valores de configuración
a través del método set.
Flight::set('flight.log_errors', true);En el archivo app/config/config.php, puedes ver todas las variables de configuración predeterminadas disponibles para ti.
Uso básico
Opciones de configuración de Flight
La siguiente es una lista de todas las configuraciones de configuración disponibles:
- flight.base_url
?string- Sobrescribe la url base de la solicitud si Flight se ejecuta en un subdirectorio. (predeterminado: null) - flight.case_sensitive
bool- Coincidencia sensible a mayúsculas y minúsculas para URLs. (predeterminado: false) - flight.handle_errors
bool- Permitir que Flight maneje todos los errores internamente. (predeterminado: true)- Si quieres que Flight maneje los errores en lugar del comportamiento predeterminado de PHP, esto debe ser true.
- Si tienes Tracy instalado, quieres establecer esto en false para que Tracy pueda manejar los errores.
- Si tienes el complemento APM instalado, quieres establecer esto en true para que el APM pueda registrar los errores.
- flight.log_errors
bool- Registrar errores en el archivo de registro de errores del servidor web. (predeterminado: false)- Si tienes Tracy instalado, Tracy registrará los errores según las configuraciones de Tracy, no esta configuración.
- flight.debug
bool- Mostrar información detallada del error (mensaje de excepción, código y seguimiento de pila) en el navegador cuando ocurre un error. (predeterminado: false)- Nunca habilites esto en producción — filtra detalles internos de la aplicación. Úsalo solo para desarrollo local o staging.
- Cuando es
false, se muestra un500 Internal Server Errorgenérico en su lugar. Combínalo conflight.log_errorspara capturar errores del lado del servidor.
- flight.allow_method_override
bool- Permitir que el método HTTP se sobrescriba a través del encabezado de solicitudX-HTTP-Method-Overrideo un campo_methoden el cuerpo POST. (predeterminado: true)- Se recomienda establecer esto en
falsepara aplicaciones que no necesitan suplantación de métodos basada en formularios HTML, ya que evita que los clientes falsifiquen solicitudesDELETEoPUTa través de un formulario POST estándar. - Consulta Seguridad para más detalles.
- Se recomienda establecer esto en
- flight.views.path
string- Directorio que contiene archivos de plantilla de vista. (predeterminado: ./views) - flight.views.extension
string- Extensión de archivo de plantilla de vista. (predeterminado: .php) - flight.content_length
bool- Establecer el encabezadoContent-Length. (predeterminado: true)- Si estás usando Tracy, esto debe establecerse en false para que Tracy pueda renderizar correctamente.
- flight.v2.output_buffering
bool- Usar el almacenamiento en búfer de salida heredado. Consulta migrando a v3. (predeterminado: false)
Configuración del cargador
Además, hay otra configuración para el cargador. Esto te permitirá
cargar automáticamente clases con _ en el nombre de la clase.
// Habilitar la carga de clases con guiones bajos
// Predeterminado en true
Loader::$v2ClassLoading = false;Variables
Flight te permite guardar variables para que puedan usarse en cualquier lugar de tu aplicación.
// Guarda tu variable
Flight::set('id', 123);
// En otro lugar de tu aplicación
$id = Flight::get('id');Para ver si una variable ha sido establecida puedes hacer:
if (Flight::has('id')) {
// Haz algo
}Puedes borrar una variable haciendo:
// Borra la variable id
Flight::clear('id');
// Borra todas las variables
Flight::clear();Nota: Solo porque puedas establecer una variable no significa que debas hacerlo. Usa esta característica con moderación. La razón es que cualquier cosa almacenada aquí se convierte en una variable global. Las variables globales son malas porque pueden cambiarse desde cualquier lugar de tu aplicación, lo que dificulta rastrear errores. Además, esto puede complicar cosas como pruebas unitarias.
Errores y excepciones
Todos los errores y excepciones son capturados por Flight y pasados al método error.
si flight.handle_errors está establecido en true.
El comportamiento predeterminado es enviar una respuesta genérica HTTP 500 Internal Server Error
con alguna información de error.
Puedes sobrescribir este comportamiento para tus propias necesidades:
Flight::map('error', function (Throwable $error) {
// Manejar error
echo $error->getTraceAsString();
});Por defecto, los errores no se registran en el servidor web. Puedes habilitar esto cambiando la configuración:
Flight::set('flight.log_errors', true);404 No encontrado
Cuando no se puede encontrar una URL, Flight llama al método notFound. El comportamiento
predeterminado es enviar una respuesta HTTP 404 Not Found con un mensaje simple.
Puedes sobrescribir este comportamiento para tus propias necesidades:
Flight::map('notFound', function () {
// Manejar no encontrado
});Ver también
- Extender Flight - Cómo extender y personalizar la funcionalidad principal de Flight.
- Pruebas unitarias - Cómo escribir pruebas unitarias para tu aplicación Flight.
- Tracy - Un complemento para manejo avanzado de errores y depuración.
- Extensiones de Tracy - Extensiones para integrar Tracy con Flight.
- APM - Un complemento para monitoreo de rendimiento de aplicaciones y seguimiento de errores.
Solución de problemas
- Si tienes problemas para encontrar todos los valores de tu configuración, puedes hacer
var_dump(Flight::get());
Registro de cambios
- v3.18.1 - Se agregaron las opciones de configuración
flight.debugyflight.allow_method_override. - v3.5.0 - Se agregó la configuración para
flight.v2.output_bufferingpara admitir el comportamiento de almacenamiento en búfer de salida heredado. - v2.0 - Configuraciones principales agregadas.