2015-06-11 12 views
5

Desidero configurare il percorso di archiviazione in un Laravel 5.1 utilizzando il file .env. Il mio bootstrap/app.php assomiglia a questo:Percorso di archiviazione impostato utilizzando .env in Laravel 5.1

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

e la relativa riga in .env file è:

STORAGE_PATH=/var/www/storage 

Questo non funziona. Ho capito che la libreria Dotenv è stata inizializzata dopo il il bootstrap viene elaborato in modo che le variabili .env non siano disponibili in bootstrap.php.

Esiste un luogo diverso in cui è possibile impostare il percorso di archiviazione e sono disponibili le variabili .env?

+1

Forse questo sarà di aiuto: https://mattstauffer.co/blog/extending-laravels-application - si può solo scambiare il percorso per 'ENV (...) '. Non l'ho provato, quindi non sono sicuro se 'env' sia pronto a quel punto. –

risposta

3

In config/filesystems.php è possibile impostare il percorso di archiviazione. Prova ad impostare il percorso di archiviazione lì e vedere se funziona. Tieni presente che l'esempio seguente è il mio suggerimento su come dovrebbe apparire il tuo config/filesystems.php. Non importa il setup di s3. Questa è una parte del mio progetto.

Ricordati di togliere $app->useStoragePath(getenv('STORAGE_PATH')); da 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

Questo non cambia il percorso di archiviazione per cose come sessione/cache/ecc. dati però, non penso? – ceejayoz

+0

@ceejayoz Sì, hai ragione su questo. L'impostazione sopra imposta solo dove sono archiviati i caricamenti dei file, come .jpg e .mp4. È possibile impostare il percorso di memorizzazione della sessione in 'config/session.php'. – MartinJH

+0

e cache in 'config/cache.php', ecc :) – MartinJH