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:

  • (bool) false: no hace nada (predeterminado).

  • (bool) true: agrega la marca de tiempo, cuando debug es true.

  • (cadena) 'force': siempre agrega la marca de tiempo.

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ón
No 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]',
   ],
],