web-dev-qa-db-fra.com

Quel est le meilleur moyen de créer des variables globales dans CakePHP?

J'aimerais créer une variable globale dans CakePHP. Si je définis quelque chose dans app_controller.php comme

var $varName

Je peux accéder

$this->varName

de l'un de mes contrôleurs, mais je ne peux pas y accéder à partir de modèles.

Comment créer une variable globale accessible à partir des modèles?

La valeur de $ varName n'est pas connue avant l'exécution, je ne pense donc pas que bootstrap.php est une option.

22
chipotle_warrior

La nouvelle classe Configure de CakePHP peut être Utilisée pour stocker et récupérer des valeurs d’application Ou d’exécution spécifiques. Soyez prudent. Cette classe vous permet de Stocker tout ce qu’il contient, puis de l’utiliser dans N’importe quelle autre partie de votre code.

31
ax.

Pour enregistrer des variables globales, utilisez la classe Configure. Par exemple: 

Configure :: write ('Company.name', 'Pizza, Inc.');

Pour lire la variable ultérieurement à n’importe quel endroit de votre code, utilisez: 

Configure :: read ('Company.name'); // donne: 'Pizza, Inc.'

Le fichier recommandé pour stocker les constantes globales se trouve dans app/config/bootstrap.php

Pour plus d'informations, voir:
Configure class - Configure la classe CakePhp . Ou Section 3.4.7 sur l’amorçage

30
Ryan

vous pouvez déclarer une variable globale dans app/config/core.php

Configure::write('variable Name','Variable Value');

vous pouvez imprimer comme ça:

Configure::read('Variable Name'); 
5
urdesh kumar

Les fonctions globales et les variables pour votre application peuvent être définies dans le fichier app/config/bootstrap.php

pour plus d'informations, voir http://book.cakephp.org/view/48/Bootstrapping-CakePHP

2
Alexander Morland

Vous pouvez définir des constantes dans bootstrap.php dans app/config/directory. Il peut être utilisé globalement dans n'importe quel contrôleur ou vue.

1
Vineet Kumar

Vous pouvez essayer de définir des constantes avec bootstrap.php (cake 3)

Ce fichier est idéal pour un certain nombre de tâches d’amorçage courantes:

Définir les fonctions de commodité.

Déclarer des constantes.

Définir la configuration du cache.

Définition de la configuration de la journalisation.

Chargement d'inflexions personnalisées.

Chargement des fichiers de configuration.

ref https://book.cakephp.org/3.0/fr/development/configuration.html#bootstrapping-cakephp

0
Thanh