Comment faire des réglages personnalisés de données disponibles à l'échelle mondiale dans Yii 2?
Je suis en création d'une application qui stocke les paramètres dans la base de données et, idéalement, il serait bon de charger ces paramètres lors de l'amorçage et de les rendre disponibles par le biais d'un objet à l'échelle mondiale.
Cela peut-il être fait et ajouté à Yii::$app->params
en quelque sorte?
Comme vous pouvez créer une classe et retourner les détails, comme un tableau ou un objet instance?
Vous pouvez utiliser de la session.
Depuis
Qui serait ok sauf pour le fait que les séances peuvent se faire détruire (dire si l'utilisateur est connecté) et je ne veux pas que cela se produise avec ce.
Ouais...... juste essayer de trouver le meilleur endroit pour charger les paramètres tôt, c'est et comment le faire.
J'ai trouvé comment le faire et posté une réponse, alors j'ai pensé que je voudrais vous laisser savoir que vous semblait intéressé. 🙂
Depuis
Yii::$app->params
est juste un tableau, vous pouvez ajouter des valeurs en elle même, plus tard, en utilisant quelque chose comme Yii::$app->params['someSetting'] = 'value';
. Mais je ne suis pas sûr exactement où il serait le plus judicieux à faire quelque chose comme cela. Aimerais entendre quelques suggestions sur les meilleures pratiques en la matière.Qui serait ok sauf pour le fait que les séances peuvent se faire détruire (dire si l'utilisateur est connecté) et je ne veux pas que cela se produise avec ce.
Ouais...... juste essayer de trouver le meilleur endroit pour charger les paramètres tôt, c'est et comment le faire.
J'ai trouvé comment le faire et posté une réponse, alors j'ai pensé que je voudrais vous laisser savoir que vous semblait intéressé. 🙂
OriginalL'auteur Brett | 2015-01-05
Vous devez vous connecter pour publier un commentaire.
Ok, j'ai trouvé comment le faire.
Fondamentalement, vous avez à mettre en œuvre les bootstrapInterface, un exemple ci-dessous, pour ma situation.
Définir le chemin d'accès à votre classe qui implémente l'interface:
app/config/web.php:
J'ai donc placé une classe appelée
Settings.php
à l'emplacement:app\base\Settings.php
.Puis c'est mon
Settings.php
fichier:Je peux maintenant accéder à mes paramètres via
Yii:$app->params['settings']
à l'échelle mondiale.Des informations supplémentaires sur d'autres manières de bootstrap trucs ici.
j'ai essayé cette utilisation des fonctions avancées du modèle, mais je reçois
Function name must be a string
Vous pourriez peut-être poser une question avec votre code, tandis que le référencement de cette réponse.
Je ne suis pas trop familier avec l'avancée modèle, cependant, vous devriez être en mesure d'y accéder de n'importe où si c'est en dehors de la même
application
.Avez-vous regardé Yii documentation sur les cache? Toutefois, si c'est pour la mise en cache d'une base de données d'appel, puis vérifier ma question ici pour votre considération.
OriginalL'auteur Brett
Une autre façon de faire est de remplacer la méthode init() dans le baseController.
C'est à vous. J'ai utilisé pour ce faire la méthode dans Yii1 mais maintenant, je préfère la méthode du bootstrap
OriginalL'auteur Stas Panyukov
Je suis un peu en retard à la fête, mais il y a un moyen beaucoup plus facile de le faire.
Maintenant vous pouvez simplement accéder à ces variables avec la syntaxe suivante
Ah, vous avez tout à fait raison
OriginalL'auteur SynackSA