Vous pouvez définir des paramètres de base de données (et de tout autre paramètre de configuration) par l'environnement.
Pour Laravel 3 (pour Laravel 4 voir ci-dessous):
D'abord, vous devez définir, $environments
votre paths.php
et le régler pour quelque chose comme ceci:
$environments = array(
'development' => array('*.dev'),
'production' => array('*.com'),
);
Laravel va automatiquement chercher cette variable, et si, va utiliser la configuration associée.
Normalement vous avez un config
le dossier, avec des paramètres tels que l' database.php
et auth.php
Maintenant, il suffit de créer un nouveau dossier pour chaque Laravel_Env
vous prévoyez de l'utiliser (comme le Développement). Vous vous retrouverez avec une structure de dossier comme ceci;
/application
/config
/development
database.php
/production
database.php
application.php
config.php
database.php
...
user_agents.php
Vous remarquerez que je n'ai inclus database.php
dans chaque sous-dossier. Laravel toujours charger la configuration par défaut des paramètres d'abord, puis les écraser avec tous les configs d'environnements de réglage.
Enfin, dans le développement de votre/fichier de base de données, vous auriez quelque chose comme ceci;
<?php
return array(
'default' => 'mysql'
);
p.s. Je viens de tester cela sur l'actuel 3.2.12 construire de Laravel - et cela fonctionne bien.
Bonus Astuce: Vous pouvez également définir automatiquement un environnement pour l'Artisan, de sorte que vous n'avez pas à inclure l'environnement manuellement sur chaque ligne de commande! Pour ce faire:
Vous avez besoin de connaître votre "nom d'hôte" que vous exécutez Artisan sur. Pour en savoir - modifier temporairement l' artisan.php
dans votre dossier racine, et ajouter var_dump(gethostname());
à la ligne 2 (c'est à dire au-dessus de tout).
Exécutez php artisan
à partir de la ligne de commande. Vous obtiendrez une chaîne de vidage avec votre nom d'hôte. Dans mon cas, sa "TSE-Win7";
Supprimer les modifications apportées à l' artisan.php
le fichier
Ajoutez votre nom d'hôte (c'est à dire "TSE-Win7") pour les environnements.
Vous devriez vous retrouver avec quelque chose comme ceci:
$environments = array(
'development' => array('*.dev', 'TSE-Win7'),
'production' => array('*.com'),
);
Artisan va maintenant exécuter à l'aide de votre environnement de développement. Si vous déployez un serveur live - ré-exécutez ces étapes pour obtenir le nom d'hôte() pour le serveur, et vous pouvez configurer un spécifique artisan config juste pour le serveur!
Pour Laravel 4:
L'environnement par défaut est toujours production
. Mais dans votre start.php fichier, vous pouvez définir d'autres environnements.
$env = $app->detectEnvironment(array(
'local' => array('your-machine-name'),
));
Sur Linux et Mac, vous pouvez déterminer votre hostname
par type hostname
dans votre terminal, il affichera le nom de votre ordinateur. Sur Windows mettre dd(gethostname());
au début de votre routes.php
le fichier et exécutez le site web une fois, il va vous montrer l'actuel nom d'hôte de votre ordinateur.
Pour obtenir de l'environnement actuel en tant que variable dans votre demande de lire cette SORTE de réponse ici. Laravel 4: comment puis-je obtenir de l'environnement de la valeur?