2015-06-12 16 views
8

In laravel viene utilizzato 5.0 codice come questo per le classi di nomi-stimolazione/carico:Perché :: classe aggiunto alla classe PHP in laravel 5.1

'providers' => [ 

     /* 
     * Laravel Framework Service Providers... 
     */ 
     'Illuminate\Foundation\Providers\ArtisanServiceProvider', 
     'Illuminate\Auth\AuthServiceProvider', 
     'Illuminate\Broadcasting\BroadcastServiceProvider', 
     'Illuminate\Bus\BusServiceProvider', 
] 

Tuttavia, sto vedendo questo in laravel 5.1

'providers' => [ 

     /* 
     * Laravel Framework Service Providers... 
     */ 
     Illuminate\Foundation\Providers\ArtisanServiceProvider::class, 
     Illuminate\Auth\AuthServiceProvider::class, 
     Illuminate\Broadcasting\BroadcastServiceProvider::class, 
     Illuminate\Bus\BusServiceProvider::class, 
] 

La mia domanda: Qual è il vantaggio di questo Illuminate\Bus\BusServiceProvider::class su questo 'Illuminate\Bus\BusServiceProvider', quando devo aggiungere ::class a un nome di classe?

C'è qualche dove posso trovare questo nella documentazione di PHP?

+0

Penso che sia solo un nuovo modo di ottenere la classe nelle nuove versioni di php – haakym

+0

come quale versione precisamente ? – Digitlimit

+0

E 'stato menzionato in un video sui laracasti, cercando di estrapolarlo ora dato che i documenti php non sembrano produrre nulla attraverso una ricerca su google – haakym

risposta

13

PHP Documentation on ::class

la funzionalità è stata introdotta con la versione 5.5, che è ora richiesto da laravel 5,1

Il ::class proprietà magia tiene il FQN (nome completo) della classe.

I vantaggi di esso sono per lo più dotati di un buon IDE. Alcuni sono:

  • Meno errori di battitura
  • Più facile refactoring
  • Auto-Completamento
  • Cliccare sulla classe per passare al file

A volte è anche bello che è possibile importare la classe invece di avere il nome completo nel codice. Ciò rende il tuo codice più pulito e tutte le dipendenze sono dichiarate con use nella parte superiore della classe. (Sto dicendo a volte perché per uno non ha senso importare tutte le classi in un file di configurazione come app.php)