Changer le chemin de stockage dans Laravel 5
Je veux changer le chemin de stockage Laravel 5.1 utilise pour quelque chose comme /home/test/storage
. Ceci a l'avantage que ces fichiers ne sont pas stockés dans le référentiel, ce qui est assez laid, je pense. Dans Laravel 4 ce qui est très simple avec bootstrap/paths.php
.
Dans Laravel 5 il cela fonctionne en utilisant $app->useStoragePath('/path/')
dans bootstrap/app.php
. Cependant, je tiens à définir le chemin de stockage avec une option de configuration, comme $app->useStoragePath(config('app.storage_path')
. L'option de configuration appelle une variable d'environnement ou renvoie d'un emplacement par défaut.
Ceci provoque une Uncaught exception 'ReflectionException' with message 'Class config does not exist'
; cela fait sens, parce que cette fonction n'est pas encore chargé.
J'ai essayé paramètre le chemin de stockage juste après le démarrage:
$app->booted(function () use ($app) {
$app->useStoragePath(config('app.storage_root'));
});
Cela n'a rien changé. J'ai aussi essayé en se liant directement à path.storage
:
$app->bind('path.storage', function ($app) {
return config('app.storage_root');
});
La dernière option fonctionne partiellement; le cache de la vue est maintenant placé dans la position correcte, mais les journaux sont encore à l'ancien emplacement.
Vous devez vous connecter pour publier un commentaire.
Voici une solution simple de changer le chemin de stockage dans Laravel 5 comme nous le faisons dans Laravel 4
sur bootstrap/app.php
cela rendra le chemin de stockage sera de même avec la session, points de vue, de la mémoire cache, les journaux
Laravel 5.3 est en bootstrap/app.php
Le mettre en place .env
app.php
app/Providers/AppServiceProvider.php
.env
Cela fonctionne sur Laravel 5.2
Fichier:
app/Providers/AppServiceProvider.php
Appel
useStoragePath
sur votreAppServiceProvider
ne serait pas faire le travail correctement, en raison de laAppServiceProvider
est appelée après que les fichiers de configuration sont chargées. de sorte que toute utilisation destorage_path
dans les fichiers de config serait encore référence à l'ancien chemin de stockage.Afin de résoudre correctement ce problème, je vous suggère d'étendre
Application
classe, puis sur le constructeur de votre propre classe d'écriture sont les suivantes.