web-dev-qa-db-fra.com

Comment changer l'environnement dans Laravel 5.1?

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.

17
Homo Sapien

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

enter image description here

Un message d'erreur du mode production

enter image description here

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

26

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 :)

Éditer

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

9
Almazik G