2014-09-26 21 views
7

In laravel, non è definito alcun file costante, quindi sono andato avanti e ho cercato un modo per implementare l'uso delle costanti. Il metodo di seguito è quello che sono riuscito a mettere insieme:Definizione delle costanti in laravel

// app/config/constants.php 
return['CONSTANT_NAME' => 'value']; 

// index.blade.php 
{{ Config::get('constants.CONSTANT_NAME') }} 

Ora, la mia domanda è; c'è un modo più pulito di recuperare le mie costanti nella mia vista? Qualcosa di simile:

{{ Constant::get('CONSTANT_NAME') }} 

Questo è per mantenere la mia vista piacevole, breve e pulita.

Apprezzo l'input!

risposta

8

Una cosa che si può fare è quello di share pieces of data across le vostre opinioni:

View::share('my_constant', Config::get('constants.CONSTANT_NAME')); 

Metti che nella parte superiore del vostro routes.php e la costante sarà quindi accessibile in tutti i vostri punti di vista lama:

{{ $my_constant }} 
+1

Ha! Non sono sicuro del motivo per cui non ho pensato a questo, soprattutto perché ho familiarità con la funzionalità di condivisione di Laravel! – Marfat

4

La classe Config è destinata a sostituire la necessità di costanti e svolge lo stesso ruolo.

Avere app/config/constants.php restituire un array di coppie chiave/valore, quindi utilizzare semplicemente Config::get('constants.key') per accedervi.

Si potrebbe plausibilmente crea una classe Constant che ha una funzione get come scorciatoia:

class Constant { 
    public function get($key) { 
    return Config::get('constants.' . $key); 
    } 
} 

ma utilizzando la movimentazione standard laravel è probabile che sia più bello di altri sviluppatori laravel che cercano di familiarizzare con il codice.

1

Nella v5 si può fare come suggerisce @msturdy tranne che si memorizzano le costanti nel file .env o in produzione come vere variabili $ _ENVIRONMENT sul proprio server per il proprio ambiente.

Esempio .env entrata:

CONSTANT=value 

quindi chiamare in questo modo:

View::share('bladeConstant', env('CONSTANT')); 

Poi caricarlo con:

{{ bladeConstant }} 
+1

.env non è raccomandato per l'uso in ambienti di produzione (https://github.com/vlucas/phpdotenv#usage-notes), può comportarsi in modo imprevedibile (e per questo motivo direi che non è nemmeno così utile in fase di sviluppo !). – toby1kenobi

+0

Vero, tuttavia le variabili di ambiente possono anche essere impostate sul server anziché utilizzare un file .env. e il resto di quanto sopra rimane lo stesso. Ho aggiornato la mia risposta per riflettere meglio. –