Chcę zmienić ścieżkę przechowywania, którą Laravel 5.1 używa do czegoś podobnego do /home/test/storage
. Ma to tę zaletę, że pliki te nie są przechowywane w repozytorium, co wydaje mi się dość brzydkie. W Laravel 4 było to bardzo proste z bootstrap/paths.php
.Zmień ścieżkę przechowywania w Laravel 5
W Laravel 5 to działa przy użyciu $app->useStoragePath('/path/')
w bootstrap/app.php
. Jednak chcę zdefiniować ścieżkę przechowywania za pomocą opcji konfiguracyjnej, takiej jak $app->useStoragePath(config('app.storage_path')
. Opcja konfiguracyjna wywołuje zmienną środowiskową lub zwraca domyślną lokalizację.
Powoduje to uzyskanie wyniku Uncaught exception 'ReflectionException' with message 'Class config does not exist'
; ma to sens, ponieważ ta funkcja nie jest jeszcze załadowana.
Próbowałem ustawienie ścieżki pamięci zaraz po uruchomieniu:
$app->booted(function() use ($app) {
$app->useStoragePath(config('app.storage_root'));
});
To nic nie zmienił. Próbowałem też bezpośrednio wiążący go path.storage
:
$app->bind('path.storage', function ($app) {
return config('app.storage_root');
});
Ostatnia opcja działa częściowo; pamięć podręczna widoku jest teraz umieszczona we właściwej lokalizacji, ale dzienniki nadal znajdują się w starej lokalizacji.
Korzystnie nie, bo to zmusza cię do posiadania określonej lokalizacji. Możesz ditignore dowiązanie symboliczne i dodać go dla każdej instalacji, ale jest to dość hacky. – spacek33z