2015-05-10 12 views
8

ho creato file di configurazione personalizzata in laravel 5 e cercare di utilizzare le impostazioni da esso in altri file (session.php, cache.php) chiamando config('myconfigfile.value'), ma non ci sono valori restituiti dalla mia config . Sembra che i file di configurazione abbiano un ordine di caricamento predefinito e le configurazioni personalizzate si stiano caricando alla fine o non siano state inizializzate altrimenti per altre cause.personalizzato all'interno laravel 5 file di configurazione

Come posso accedere alle mie impostazioni dai file di configurazione di laravel?

risposta

10

Prima di tutto bisogna aggiungere il file nella cartella config, ad esempio: laravel \ config \ Test.php

<?php 
use Illuminate\Support\Facades\Config; 


return [ 

    'name' => 'Ali Mohammed', 
    'age' => 26 

]; 

allora avete bisogno di chiamare il config

get('test', function(){ 

    return Config::get('Test.name'); 

}); 
+1

Non ho alcun problema a ottenere le impostazioni dal mio file di configurazione personalizzate in qualsiasi parte di applicazione ad eccezione dei file di configurazione laravel standard. Prova ad accedere al tuo "Test.name" da "Config/cache.php". – korokoro

+0

che sinceramente mi dispiace per l'incomprensione della domanda Non sono sicuro, ma penso che non si possa chiamare config all'interno di un altro file di configurazione come hai detto Sembra che i file di configurazione abbiano un ordine di caricamento predefinito. –

4

Perché non basta usare la env() helper in ogni file di configurazione che ti serve?

Si potrebbe solo essere necessario impostare il valore nel file di .env

CUSTOM_SETTING="some value" 

e scarica su ogni file di configurazione

<?php 
return [ 
    // ... 
    'custom_value' => env('CUSTOM_SETTING', 'some default value'), 
    // ... 
]; 

Dai un'occhiata al helper code.

+2

Il file di configurazione è il luogo principale in cui archiviare le impostazioni dell'applicazione e il file '.env' serve per correggere alcune impostazioni se necessario. L'applicazione dovrebbe funzionare correttamente senza alcun file '.env'. Per garantire che l'app funzioni senza il file '.env' usando il tuo approccio, dovrei modificare ogni occorrenza di' 'some default value'' in configs modificando invece solo 'config/custom-config.php'. Sì, non è difficile, ma penso che non sia il modo migliore. – korokoro

+1

Per ottenere ciò che vuoi, non c'è altro modo che io conosca. Inoltre, che senso ha assegnare un valore da un file di configurazione a un altro valore del file di configurazione? Tu dici che il mio suggerimento non è il modo migliore, eppure quello che chiedi è completamente ridondante! Ti va di spiegare quale è il ragionamento dietro ciò che vuoi? Altrimenti, quello che ho suggerito è il modo più corretto che probabilmente otterrai. –

+0

No, non è ridondante per me :) Ad esempio, ho il valore del nome dell'applicazione nella configurazione personalizzata e voglio generare il nome del file di sessione o il prefisso della cache in base a questo valore. – korokoro

1

Dovremmo anche controllare la cache per i file di configurazione personalizzati aggiunti.

php artisan config:cache 

Scegli questa link