CakePHP - Configuración del proyecto
En este capítulo, entenderemos el Environment Variables, General Configuration, Database Configuration y Email Configuration en CakePHP.
ConfigurationCakePHP viene con un archivo de configuración por defecto, y podemos modificarlo según nuestras necesidades. Hay una carpeta dedicada“config”para este propósito. CakePHP viene con diferentes opciones de configuración.
Comencemos por comprender las Variables de entorno en CakePHP.
Variables de entorno
Las variables de entorno facilitan el trabajo de su aplicación en diferentes entornos. Por ejemplo, en el servidor de desarrollo, el servidor de prueba, el servidor de ensayo y el entorno del servidor de producción. Para todos estos entornos, puede hacer uso deenv() function para leer la configuración del entorno que necesita y crear su aplicación.
En su carpeta de configuración, encontrará config / .env.example. Este archivo tiene todas las variables que se cambiarán según su entorno. Para empezar, puede crear un archivo en la carpeta de configuración, es decir, config / .env, definir esas variables y usarlas. En caso de que necesite variables adicionales, puede ir en ese archivo.
Puede leer su variable de entorno usando la función env () como se muestra a continuación:
Ejemplo
$debug = env('APP_DEBUG', false);
El primero es el nombre de la variable de entorno que desea y el segundo valor es el valor predeterminado. Se utiliza el valor predeterminado, si no se encuentra ningún valor para la variable de entorno.
Configuración general
La siguiente tabla describe el papel de varias variables y cómo afectan su aplicación CakePHP.
No Señor | Nombre y descripción de variable |
---|---|
1 | debug Cambia la salida de depuración de CakePHP. false= Modo de producción. No se muestran mensajes de error, errores o advertencias. true = Se muestran errores y advertencias. |
2 | App.namespace El espacio de nombres para buscar clases de aplicaciones. |
3 | App.baseUrl Descomente esta definición, si no planea usar mod_rewrite de Apache con CakePHP. No olvide eliminar también sus archivos .htaccess. |
4 | App.base El directorio base en el que reside la aplicación. Si es falso, se detectará automáticamente. |
5 | App.encoding Defina qué codificación usa su aplicación. Esta codificación se utiliza para generar el juego de caracteres en el diseño y codificar entidades. Debe coincidir con los valores de codificación especificados para su base de datos. |
6 | App.webroot El directorio webroot. |
7 | App.wwwRoot La ruta del archivo a webroot. |
8 | App.fullBaseUrl El nombre de dominio completo (incluido el protocolo) a la raíz de su aplicación. |
9 | App.imageBaseUrl Ruta web al directorio de imágenes públicas en webroot. |
10 | App.cssBaseUrl Ruta web al directorio css público en webroot. |
11 | App.jsBaseUrl Ruta web al directorio js público en webroot. |
12 | App.paths Configure rutas para recursos no basados en clases. Apoya elplugins, templates, locales, subkeys, que permiten la definición de rutas para complementos, ver plantillas y archivos de configuración regional respectivamente. |
13 | Security.salt Una cadena aleatoria utilizada en hash. Este valor también se utiliza como sal HMAC cuando se realiza un cifrado simétrico. |
14 | Asset.timestamp Agrega una marca de tiempo, que es la hora de última modificación del archivo en particular al final de las URL de los archivos de activos (CSS, JavaScript, Imagen) cuando se utilizan los ayudantes adecuados. Los valores válidos son:
|
Configuración de bases de datos
La base de datos se puede configurar en config/app.php and config/app_local.phparchivo. Este archivo contiene una conexión predeterminada con los parámetros proporcionados, que se pueden modificar según nuestra elección.
El siguiente fragmento muestra los parámetros y valores predeterminados, que deben modificarse según el requisito.
Config / app_local.php
*/
'Datasources' => [
'default' => [
'host' => 'localhost',
'username' => 'my_app',
'password' => 'secret',
'database' => 'my_app',
'url' => env('DATABASE_URL', null),
],
/*
* The test connection is used during the test suite.
*/
'test' => [
'host' => 'localhost',
//'port' => 'non_standard_port_number',
'username' => 'my_app',
'password' => 'secret',
'database' => 'test_myapp',
//'schema' => 'myapp',
],
],
Entendamos cada parámetro en detalle en config/app_local.php.
Anfitrión | El nombre de host del servidor de la base de datos (o dirección IP). |
---|---|
nombre de usuario | Nombre de usuario de la base de datos |
contraseña | Contraseña de la base de datos. |
base de datos | Nombre de la base de datos. |
Puerto | El puerto TCP o zócalo Unix utilizado para conectarse al servidor. |
config / app.php
'Datasources' => [
'default' => [
'className' => Connection::class,
'driver' => Mysql::class,
'persistent' => false,
'timezone' => 'UTC',
//'encoding' => 'utf8mb4',
'flags' => [],
'cacheMetadata' => true,
'log' => false,
'quoteIdentifiers' => false,
//'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'],
],
]
Entendamos cada parámetro en detalle en config/app.php.
Iniciar sesiónNo Señor | Clave y descripción |
---|---|
1 | className El nombre de clase con espacio de nombres completo de la clase que representa la conexión a un servidor de base de datos. Esta clase es responsable de cargar el controlador de la base de datos, proporcionar mecanismos de transacción SQL y preparar declaraciones SQL, entre otras cosas. |
2 | driver El nombre de clase del controlador utilizado para implementar todas las especificidades de un motor de base de datos. Puede ser un nombre de clase corto con sintaxis de complemento, un nombre con espacio de nombres completo o una instancia de controlador construida. Ejemplos de nombres de clase cortos son Mysql, Sqlite, Postgres y Sqlserver. |
3 | persistent Si utilizar o no una conexión persistente a la base de datos. |
4 | encoding Indica el conjunto de caracteres que se utilizará al enviar sentencias SQL al servidor como 'utf8', etc. |
5 | timezone Zona horaria del servidor para configurar. |
6 | init Una lista de consultas que se deben enviar al servidor de la base de datos cuando se crea la conexión. |
7 | log Establézcalo en verdadero para habilitar el registro de consultas. Cuando está habilitado, las consultas se registrarán en un nivel de depuración con el alcance queriesLog. |
8 | quoteIdentifiers Establézcalo en verdadero, si está utilizando palabras reservadas o caracteres especiales en los nombres de sus tablas o columnas. Habilitar esta configuración resultará en consultas creadas usando el Generador de consultas con identificadores entrecomillados al crear SQL. Disminuye el rendimiento. |
9 | flags Una matriz asociativa de constantes de PDO que se deben pasar a la instancia de PDO subyacente. |
10 | cacheMetadata Ya sea booleano verdadero o una cadena que contenga la configuración de la caché para almacenar los metadatos. No se recomienda desactivar el almacenamiento en caché de metadatos y puede resultar en un rendimiento muy deficiente. |
Configuración de correo electrónico
El correo electrónico se puede configurar en archivo config/app.php. No es necesario definir la configuración del correo electrónico en config / app.php. El correo electrónico se puede utilizar sin él. Simplemente use los métodos respectivos para establecer todas las configuraciones por separado o cargue una matriz de configuraciones. La configuración de los valores predeterminados de correo electrónico se crea utilizandoconfig() y configTransport().
Transporte de configuración de correo electrónico
Al definir los transportes por separado de los perfiles de entrega, puede reutilizar fácilmente la configuración de transporte en varios perfiles. Puede especificar varias configuraciones para producción, desarrollo y pruebas. Cada transporte necesita un className. Las opciones válidas son las siguientes:
Mail - Enviar usando la función de correo PHP
Smtp - Enviar usando SMTP
Debug - No envíe el correo electrónico, solo devuelva el resultado
Puede agregar transportes personalizados (o anular transportes existentes) agregando el archivo apropiado a src/Mailer/Transport. Los transportes deben ser nombradosYourTransport.php, dónde 'Your' es el nombre del transporte.
A continuación se muestra el ejemplo de transporte de configuración de correo electrónico.
'EmailTransport' => [
'default' => [
'className' => 'Mail',
// The following keys are used in SMTP transports
'host' => 'localhost',
'port' => 25,
'timeout' => 30,
'username' => 'user',
'password' => 'secret',
'client' => null,
'tls' => null,
'url' => env('EMAIL_TRANSPORT_DEFAULT_URL', null),
],
],
Perfiles de entrega de correo electrónico
Los perfiles de entrega le permiten predefinir varias propiedades sobre los mensajes de correo electrónico desde su aplicación y dar un nombre a la configuración. Esto ahorra duplicaciones en su aplicación y facilita el mantenimiento y el desarrollo. Cada perfil acepta una serie de claves.
A continuación se muestra un ejemplo de perfiles de entrega de correo electrónico.
'Email' => [
'default' => [
'transport' => 'default',
'from' => '[email protected]',
],
],