Quelle est la meilleure façon de créer des variables globales dans CakePHP?

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

var $varName

je peux accéder à

$this->varName

d'aucun de mes controllers, mais je ne peux pas y accéder à partir de modèles.

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

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

22
demandé sur chipotle_warrior 2009-03-12 20:05:15

7 réponses

Le nouveauConfigurer la classe peut être utilisé pour stocker et récupérer l'application ou des valeurs spécifiques à l'exécution. Être attention, cette classe permet d' stockez n'importe quoi dedans, puis utilisez-le dans toute autre partie de votre code

31
répondu ax. 2014-01-04 15:39:23

pour sauvegarder les variables globales utilisez la classe Configure. Par exemple:

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

lire la variable plus tard, en tout lieu de votre code à utiliser:

configurer:: read ('Company.nom"); //yields: "Pizza, Inc.'

le fichier recommandé pour stocker les constantes globales est en app/config / bootstrap.php

Pour plus d'informations voir:

Classe de configuration -Configurer La Classe CakePhp. ou section 3.4.7 sur Bootstrapping

30
répondu Ryan 2013-07-03 09:10:32

vous pouvez déclarer la variable globale dans app/cofig / core.php

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

vous pouvez imprimer comme ça :

Configure::read('Variable Name'); 
5
répondu urdesh kumar 2014-01-18 13:55:29

les fonctions et variables globales de votre application peuvent être définies dans l'app/config/bootstrap.php

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

2
répondu Alexander Morland 2009-03-13 21:26:00

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
répondu Vineet Kumar 2013-06-20 18:10:49

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 amorçage:

définition des fonctions de commodité.

Declaration des constantes.

définition de la configuration du cache.

définition de la configuration de journalisation.

chargement des inflexions personnalisées.

Chargement des fichiers de configuration.

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

0
répondu Thanh 2017-12-28 16:10:15

en Fait, pourquoi tu fais ça? Le modèle devrait avoir aucune idée qu'un contrôleur existe.

si c'est un objet business (model), créez-le comme tel. Si non, le modèle ne doit pas le savoir.

-2
répondu user76035 2009-03-12 17:37:34