CakePHP - Configuration du projet

Dans ce chapitre, nous comprendrons le Environment Variables, General Configuration, Database Configuration et Email Configuration dans CakePHP.

ConfigurationCakePHP est livré avec un fichier de configuration par défaut, et nous pouvons le modifier selon nos besoins. Il y a un dossier dédié“config”dans ce but. CakePHP est livré avec différentes options de configuration.

Commençons par comprendre les variables d'environnement dans CakePHP.

Variables d'environnement

Les variables d'environnement facilitent le fonctionnement de votre application dans différents environnements. Par exemple, sur un serveur de développement, un serveur de test, un serveur intermédiaire et un environnement de serveur de production. Pour tous ces environnements, vous pouvez utiliserenv() function pour lire la configuration de l'environnement dont vous avez besoin et créer votre application.

Dans votre dossier de configuration, vous rencontrerez config / .env.example. Ce fichier contient toutes les variables qui seront modifiées en fonction de votre environnement. Pour commencer, vous pouvez créer un fichier dans le dossier config ie config / .env et définir ces variables et les utiliser. Au cas où vous auriez besoin de variables supplémentaires, elles peuvent aller dans ce fichier.

Vous pouvez lire votre variable d'environnement en utilisant la fonction env () comme indiqué ci-dessous -

Exemple

$debug = env('APP_DEBUG', false);

Le premier est le nom de la variable d'environnement souhaitée et la seconde valeur est la valeur par défaut. La valeur par défaut est utilisée, s'il n'y a pas de valeur trouvée pour la variable d'environnement.

Configuration générale

Le tableau suivant décrit le rôle des différentes variables et comment elles affectent votre application CakePHP.

Sr. Non Nom et description de la variable
1

debug

Modifie la sortie de débogage de CakePHP.

false= Mode de production. Aucun message d'erreur, erreur ou avertissement affiché.

true = Erreurs et avertissements affichés.

2

App.namespace

L'espace de noms sous lequel trouver les classes d'application.

3

App.baseUrl

Annulez le commentaire de cette définition, si vous ne prévoyez pas d'utiliser le mod_rewrite d'Apache avec CakePHP. N'oubliez pas de supprimer également vos fichiers .htaccess.

4

App.base

Le répertoire de base dans lequel réside l'application. Si la valeur est false, cela sera détecté automatiquement.

5

App.encoding

Définissez le codage utilisé par votre application. Ce codage est utilisé pour générer le jeu de caractères dans la mise en page et coder les entités. Il doit correspondre aux valeurs de codage spécifiées pour votre base de données.

6

App.webroot

Le répertoire webroot.

sept

App.wwwRoot

Le chemin du fichier vers webroot.

8

App.fullBaseUrl

Le nom de domaine complet (y compris le protocole) à la racine de votre application.

9

App.imageBaseUrl

Chemin Web vers le répertoire des images publiques sous webroot.

dix

App.cssBaseUrl

Chemin Web vers le répertoire public css sous webroot.

11

App.jsBaseUrl

Chemin Web vers le répertoire public js sous webroot.

12

App.paths

Configurez les chemins pour les ressources non basées sur les classes. Soutient leplugins, templates, locales, subkeys, qui permettent la définition de chemins pour les plugins, les modèles de vue et les fichiers de paramètres régionaux respectivement.

13

Security.salt

Une chaîne aléatoire utilisée dans le hachage. Cette valeur est également utilisée comme sel HMAC lors du chiffrement symétrique.

14

Asset.timestamp

Ajoute un horodatage, qui correspond à la dernière heure de modification du fichier particulier à la fin des URL des fichiers d'actif (CSS, JavaScript, Image) lors de l'utilisation des aides appropriées. Les valeurs valides sont -

  • (booléen) false - Ne fait rien (par défaut).

  • (bool) true - Ajoute l'horodatage, lorsque le débogage est vrai.

  • (string) 'force' - Ajoute toujours l'horodatage.

Configuration des bases de données

La base de données peut être configurée dans config/app.php and config/app_local.phpfichier. Ce fichier contient une connexion par défaut avec les paramètres fournis, qui peuvent être modifiés selon notre choix.

L'extrait ci-dessous montre les paramètres et les valeurs par défaut, qui doivent être modifiés conformément à l'exigence.

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',
      ],
   ],

Comprenons chaque paramètre en détail dans config/app_local.php.

Hôte

Le nom d'hôte (ou l'adresse IP) du serveur de base de données.

Nom d'utilisateur

Nom d'utilisateur de la base de données

mot de passe

Mot de passe de la base de données.

base de données

Nom de la base de données.

Port

Le port TCP ou socket Unix utilisé pour se connecter au serveur.

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'],
   ],
]

Comprenons chaque paramètre en détail dans config/app.php.

Journal
Sr. Non Clé et description
1

className

Nom de classe entièrement espacé de la classe qui représente la connexion à un serveur de base de données. Cette classe est responsable du chargement du pilote de base de données, de la fourniture de mécanismes de transaction SQL et de la préparation des instructions SQL, entre autres.

2

driver

Le nom de classe du pilote utilisé pour implémenter toutes les spécificités d'un moteur de base de données. Il peut s'agir d'un nom de classe court utilisant la syntaxe du plugin, d'un nom entièrement espacé ou d'une instance de pilote construite. Des exemples de noms de classe courts sont Mysql, Sqlite, Postgres et Sqlserver.

3

persistent

Utiliser ou non une connexion persistante à la base de données.

4

encoding

Indique le jeu de caractères à utiliser lors de l'envoi d'instructions SQL au serveur comme 'utf8' etc.

5

timezone

Fuseau horaire du serveur à définir.

6

init

Une liste de requêtes qui doivent être envoyées au serveur de base de données au fur et à mesure que la connexion est créée.

sept

log

Définissez sur true pour activer la journalisation des requêtes. Lorsqu'elles sont activées, les requêtes seront enregistrées au niveau de débogage avec l'étendue queriesLog.

8

quoteIdentifiers

Défini sur true, si vous utilisez des mots réservés ou des caractères spéciaux dans vos noms de table ou de colonne. L'activation de ce paramètre entraînera des requêtes générées à l'aide du générateur de requêtes ayant des identificateurs entre guillemets lors de la création de SQL. Cela diminue les performances.

9

flags

Un tableau associatif de constantes PDO qui doivent être transmises à l'instance PDO sous-jacente.

dix

cacheMetadata

Soit boolean true, soit une chaîne contenant la configuration du cache dans laquelle stocker les métadonnées. La désactivation de la mise en cache des métadonnées n'est pas conseillée et peut entraîner de très mauvaises performances.

Configuration des e-mails

L'e-mail peut être configuré dans un fichier config/app.php. Il n'est pas nécessaire de définir la configuration des e-mails dans config / app.php. Le courrier électronique peut être utilisé sans lui. Utilisez simplement les méthodes respectives pour définir toutes les configurations séparément ou charger un tableau de configurations. La configuration des valeurs par défaut des e-mails est créée à l'aide deconfig() et configTransport().

Transport de configuration de messagerie

En définissant les transports séparément des profils de livraison, vous pouvez facilement réutiliser la configuration de transport sur plusieurs profils. Vous pouvez spécifier plusieurs configurations pour la production, le développement et les tests. Chaque transport a besoin d'un nom de classe. Les options valides sont les suivantes -

  • Mail - Envoyer en utilisant la fonction de messagerie PHP

  • Smtp - Envoyer via SMTP

  • Debug - N'envoyez pas l'email, renvoyez simplement le résultat

Vous pouvez ajouter des transports personnalisés (ou remplacer les transports existants) en ajoutant le fichier approprié à src/Mailer/Transport. Les transports doivent être nommésYourTransport.php, où 'Your' est le nom du transport.

Voici l'exemple du transport de configuration de messagerie.

'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),
   ],
],

Profils de livraison des e-mails

Les profils de livraison vous permettent de prédéfinir diverses propriétés des e-mails à partir de votre application et de donner un nom aux paramètres. Cela évite la duplication dans votre application et facilite la maintenance et le développement. Chaque profil accepte un certain nombre de clés.

Voici un exemple de profils de livraison d'e-mails.

'Email' => [
   'default' => [
   
      'transport' => 'default',
      'from' => '[email protected]',
   ],
],