Ce que je comprends du fonctionnement des environnements dans Laravel est que vous avez différents environnements pour des environnements différents et bien. Donc, si vous exécutez votre application localement, vous pourriez avoir un .env.local
fichier. Si vous testez ou êtes en production, vous pouvez utiliser .env.testing
ou .env.production
. (Corrigez-moi si je me trompe.)
Par défaut, nous obtenons .env
fichier que nous pouvons éditer. Mais quelqu'un peut-il me dire quel est le flux de travail pour changer les environnements dans Laravel? J'ai essayé la documentation mais je n'ai pas pu l'obtenir. Aidez-moi, s'il vous plaît.
Lorsque vous installez Laravel 5.1 vous obtenez deux fichiers .env
et .env.example
si vous voulez travailler localement vous définissez:
APP_ENV=local
APP_DEBUG=true
dans prod vous définissez
APP_ENV=production
APP_DEBUG=false
Un message d'erreur en mode débogage
Un message d'erreur du mode production
Remarque: vous avez deux fichiers .env .env
et .env.example
.. vous pouvez également en créer un autre que vous nommez .env.production
mais gardez à l'esprit que pour charger votre configuration, vous devez simplement renommer votre fichier en .env
EDIT: Donc, si vous travaillez toujours en local et que vous avez besoin d'une autre base de données pour le test, vous pouvez créer un autre fichier, donc au total, vous avez 3 fichiers .env:
.env.production
.env.local1
.env.local2
chaque fois que vous voulez changer de configuration, renommez simplement le fichier souhaité en .env
L'idée d'avoir .env.local.php
, .env.production.php
est obsolète depuis Laravel 5. Maintenant, dans L5, nous avons .env
fichier, où vous stockez toute la configuration de votre environnement. Pour définir votre environnement, vous devez mettre APP_ENV=local
à ce fichier.
Une fois que vous déployez votre projet en production, vous créez .env
fichier sur le serveur et définissez APP_ENV=production
Si vous utilisez un service comme Laravel Forge, il vous offre un moyen simple et agréable de stocker vos données d'environnement. Mais c'est une autre histoire :)
pour utiliser plusieurs connexions db, vous pouvez procéder comme suit:
dans votre config/database.php
fichier
<?php
return array(
'default' => env('DEFAULT_DB_CONNECTION', 'mysql'),
'connections' => array(
# Our primary database connection
'mysql' => array(
'driver' => 'mysql',
'Host' => 'Host1',
'database' => 'database1',
'username' => 'user1',
'password' => 'pass1'
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
# Our secondary database connection
'another_mysql' => array(
'driver' => 'mysql',
'Host' => 'Host2',
'database' => 'database2',
'username' => 'user2',
'password' => 'pass2'
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
),
);
Et puis, dans le .env
fichier mettre une autre clé
DEFAULT_DB_CONNECTION=another_mysql
Bien sûr, ce type de prédéfinit votre connexion. Si vous voulez être dynamique, vous pouvez faire ce qui suit
$users = DB::connection('another_db_connection')->select('users somehow');
de cette façon, vous obtiendrez des résultats de votre connexion mysql secondaire, peu importe ce qui est configuré dans votre environnement