Quelle est la meilleure pratique pour ajouter des constantes dans laravel? (Longue Liste)
je suis plutôt nouveau à laravel. J'ai une question de base, Quelle est la meilleure façon d'ajouter des constantes dans laravel. Je sais que le .env méthode que nous utilisons pour ajouter les constantes. J'ai aussi fait un fichier de constantes pour les utiliser pour mon projet. Par exemple:
define('OPTION_ATTACHMENT', 13);
define('OPTION_EMAIL', 14);
define('OPTION_MONETERY', 15);
define('OPTION_RATINGS', 16);
define('OPTION_TEXTAREA', 17);
Et ainsi de suite. Il peut atteindre jusqu'à 100 enregistrements ou plus. Donc quelle devrait être la meilleure approche pour écrire les constantes. Le. méthode env. Ou en ajoutant la constante.fichier php?
Merci
7 réponses
pour la plupart des constantes utilisées globalement dans l'application, leur stockage dans des fichiers de configuration est suffisant. Il est également assez simple
Créer un nouveau fichier dans le config
répertoire. Nous allons l'appeler constants.php
là, vous devrez retourner un tableau de valeurs de configuration.
return [
'options' => [
'option_attachment' => '13',
'option_email' => '14',
'option_monetery' => '15',
'option_ratings' => '16',
'option_textarea' => '17',
]
];
Et vous pouvez y accéder comme suit
Config::get('constants.options');
// or if you want a specific one
Config::get('constants.options.option_attachment');
Votre question portait sur les "meilleures pratiques" et vous avez demandé à propos de la".méthode env".
.env est seulement pour les variables qui changent parce que le environnement changements. Exemples de différents environnements: test, acceptation, production.
Donc le .env contient des justificatifs d'identité de base de données, des clés API, etc.
le .env ne devrait jamais (imho) contenir des constantes qui sont les mêmes dans tous les environnements. Utilisez simplement le suggère les fichiers de configuration que.
Vous pouvez créer un fichier nommé chemins.phpracine du répertoire/config/les chemins.php
Insérer ces données dans les chemins.php
define('OPTION_ATTACHMENT', 13);
define('OPTION_EMAIL', 14);
define('OPTION_MONETERY', 15);
define('OPTION_RATINGS', 16);
define('OPTION_TEXTAREA', 17);
php artisan config:clear
j'utilise des alias des constantes de classe :
tout d'Abord, créez votre classe qui contiennent votre constantes : App/MyApp.php
for example
namespace App;
class MyApp {
const MYCONST = 'val';
}
puis l'Ajouter aux classes aliasées dans le config/app.php
'aliases' => [
//...
'MyApp' => App\MyApp::class,
enfin utilisez-les où vous voulez (contrôleurs ou même lames) :
MyApp::MYCONST
tout d'Abord vous rendre Constants
dossier à l'intérieur de votre répertoire app.
Et puis vous faites Constants.php
. Définissez vos constantes dans ce fichier
Par Exemple :
define('ONE', '1');
define('TWO', '2');
et vous modifiez le composer.json
Alternativement, vous pouvez utiliser le compositeur.JSON pour charger le bootstrap / constantes.php file en ajoutant le code suivant à la section "autoload", comme ceci:
"autoload": {
"files": [
"bootstrap/constants.php"
]
}
et mettez à jour votre compositeur !
une Autre façon suivante:
- créer la constante.fichier php dans le répertoire app/Constant
dans compositeur.fichier json, ajouter les directives comme ceci:
"autoload": { "classmap": [ "database/seeds", "database/factories" ], "psr-4": { "App\": "app/" }, "files": [ "app/helpers.php", "app/config/constants.php" ] }
en plus de la réponse D'Arun Singh, je vous recommande d'utiliser aides.
à l'Intérieur de votre helper.php
vous pouvez définir
if ( ! function_exists('constants'))
{
function constants($key)
{
return config('constants.' . $key);
}
}
Donc au lieu de
Config::get('constants.options.option_attachment');
vous pouvez appeler
constants('options.option_attachment');