Quelle est la meilleure façon de créer des variables globales dans CakePHP?
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.
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
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
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');
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
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.
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
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.