10
votes

Définir les constantes à Laravel

Dans Laravel, il n'y a pas de fichier constant défini, alors j'ai poursuivi et cherché un moyen de mettre en œuvre l'utilisation des constantes. La méthode ci-dessous est ce que j'ai réussi à mettre en place:

{{ Constant::get('CONSTANT_NAME') }}


0 commentaires

3 Réponses :


4
votes

La classe config est destiné à remplacer le besoin de constantes et sert le même rôle.

avoir app / config / constantes.php renvoie un tableau de clé / Valeur paires, alors utilisez simplement config :: get ('constantes.key') pour y accéder.

Vous pouvez concevoir une classe constante qui a un obtenir une fonction comme un raccourci: xxx

mais en utilisant la manipulation standard de Laravel est susceptible d'être plus agréable à d'autres développeurs de Laravel essayant de se familiariser avec votre code.


0 commentaires

9
votes

Une chose que vous puissiez faire est de Partager des données sur Vos vues: < Pré> xxx

mettre cela en haut de votre routtes.php et la constante sera alors accessible dans toutes vos vues de la lame comme suit: xxx < / pré>


1 commentaires

Ha! Je ne sais pas pourquoi je ne l'ai pas pensé du tout, surtout depuis que je connais avec la fonctionnalité des actions de Laravel!



2
votes

En V5, vous pouvez faire comme @MSturdy suggérer, sauf que vous stockez la constante dans le fichier .env ou dans la production en tant que variables réelles $ _Environment sur votre serveur pour votre environnement.

Exemple d'entrée .env: P> xxx pré>

appelez comme suit: p> xxx pré>

puis le charger avec: p>

{{ bladeConstant }}


2 commentaires

.env n'est pas recommandé pour une utilisation dans les environnements de production ( Github.com/vlucas/phpdotenv#USAGE-NOTES ), il peut se comporter de manière imprévisible (et pour cette raison, je dirais que je n'étais pas aussi utile dans le développement!).


True, mais les variables d'environnement peuvent également être définies sur votre serveur au lieu d'utiliser un fichier .env. et le reste de ce qui précède reste le même. J'ai mis à jour ma réponse pour mieux refléter cela.