2015-06-11 4 views
5

Я хочу настроить путь хранения в Laravel 5.1 с помощью файла .env. Моя bootstrap/app.php выглядит следующим образом:Путь к хранилищу с использованием .env в Laravel 5.1

<?php 
$app = new \Illuminate\Foundation\Application(
    realpath(__DIR__.'/../') 
); 
$app->useStoragePath(getenv('STORAGE_PATH')); 

и соответствующая строка в файле .env:

STORAGE_PATH=/var/www/storage 

Это не работает. Я выяснил, что библиотека Dotenv инициализирована после. Бутстрап обрабатывается, поэтому переменные .env недоступны в bootstrap.php.

Есть ли другое место, где я могу установить путь хранения, и доступны переменные .env?

+1

Возможно, это будет помощь: https://mattstauffer.co/blog/extending-laravels-application - вы можете просто поменять путь для 'окр (...) '. Не проверял его, поэтому не уверен, что 'env' готов к этому моменту. –

ответ

3

В config/filesystems.php вы можете установить путь хранения. Попробуйте установить путь к хранилищу и посмотрите, работает ли он. Обратите внимание, что приведенный ниже пример - мое предложение относительно того, как должен выглядеть ваш config/filesystems.php. Не против настройки s3. Это часть моего проекта.

Не забудьте удалить $app->useStoragePath(getenv('STORAGE_PATH')); из app.php

return [ 

    'default' => 's3', 

    'cloud' => 's3', 

    'disks' => [ 

     'local' => [ 
      'driver' => 'local', 
      'root' => env('STORAGE_PATH'), 
     ], 

     's3' => [ 
      'driver' => 's3', 
      'key' => env('AWS_KEY'), 
      'secret' => env('AWS_SECRET'), 
      'region' => env('AWS_REGION'), 
      'bucket' => env('AWS_BUCKET'), 
     ], 

     'rackspace' => [ 
      'driver' => 'rackspace', 
      'username' => 'your-username', 
      'key'  => 'your-key', 
      'container' => 'your-container', 
      'endpoint' => 'https://identity.api.rackspacecloud.com/v2.0/', 
      'region' => 'IAD', 
     ], 
    ], 
]; 
+0

Это не изменяет путь хранения для таких вещей, как session/cache/etc. данные, хотя, я не думаю? – ceejayoz

+0

@ceejayoz Yup, ты прав. Установка выше только устанавливает, где хранятся файлы, такие как .jpg и .mp4. Вы можете установить путь хранения сеанса в 'config/session.php'. – MartinJH

+0

и кеш в 'config/cache.php' и т. Д. :) – MartinJH