2015-06-30 22 views
13

in Config/app.php in fonte laravel, qual è l'uso effettivo di url?Qual è il significato di Application URL laravel 5

Dice URL applicazione per essere utilizzato da artisan command line tool, così che cosa dovrebbe essere fatto?

voglio dire dovrebbe essere http://mydomainname.com o dovrebbe essere /var/www/laravel/ o /var/www/laravel/public

configurazione corrente

/* 
|-------------------------------------------------------------------------- 
| Application URL 
|-------------------------------------------------------------------------- 
| 
| This URL is used by the console to properly generate URLs when using 
| the Artisan command line tool. You should set this to the root of 
| your application so that it is used when running Artisan tasks. 
| 
*/ 

'url' => 'http://localhost/', 

disponibile My sorgente dell'applicazione si trova a /var/www/ directory e cartelle pubbliche laravel è /var/www/laravel/public E il http://mydomainname.com è indicato per risolvere a /var/www/laravel/public directory

Caso d'uso:

sarò con laravel schedular da /app/Console/Kernel.php che sarà dispacciamento periodic sendMail commands e che a sua volta in fila le mail da inviare a database e queue listner che elaborerà la coda come normale

Le code sono bene al localhost (il mio server xamp locale) di lavoro però mi riguarda, come quello che dovrebbe essere il valore della produzione url

+0

Se la corrente 'url' è impostato su localhost quindi utilizzare il nome di dominio – Bankzilla

risposta

27

Quando un utente visita il tuo sito Web, Laravel riceve molte informazioni necessarie sulla richiesta dai superglobali di PHP ($ _SERVER, $ _GET, $ _POST, ecc.). Parte di queste informazioni è l'URL della richiesta.

Per esempio, se si accede ai metodi di richiesta url() o path(), queste informazioni è stato recuperato attraverso il $ _SERVER superglobale:

$url = Request::url(); 
$path = Request::path(); 

Tuttavia, artigiano, comandi, posti di lavoro, ecc non hanno il beneficio di queste informazioni. Non è una normale richiesta HTTP proveniente dall'utente, è un comando PHP eseguito dalla riga di comando. Per questo motivo, Laravel ha bisogno di un modo per determinare quale dovrebbe essere l'url dell'applicazione. È qui che entra in gioco il valore di configurazione.

Nel tuo esempio, prevedi di inviare e-mail da una coda. Immagina di dover includere un link a un percorso del tuo sito web in una delle email, in modo da utilizzare UrlGenerator per ottenere l'url per il collegamento (URL::route('route.name')). Poiché questo codice viene eseguito all'interno di un comando e non è correlato a nessun tipo di richiesta HTTP, l'URL dell'applicazione di base verrà prelevato dal valore di configurazione impostato in config/app.php.

Come dovrebbe essere un po 'più chiaro ora, il valore url deve essere impostato sull'URL http per l'applicazione, non su alcun tipo di percorso di directory. Nel tuo esempio, dovrebbe essere http://mydomainname.com.

+2

Questa è la migliore risposta e abbastanza descrittiva da capire. Grazie :-) – echoashu

+1

Stavo cercando informazioni su quel parametro di configurazione di Laravel, questa risposta è stata perfetta. Grazie. –

+1

Tutto ha senso ora. Grazie! – Staysee

5

quando sulla produzione, deve essere impostato su

'url' => 'http://your-live-domain.com', 

Come hai detto, verrà utilizzato dai comandi e dalle code dell'artigiano.

È possibile utilizzare lo .env per memorizzare il dominio attivo. http://laravel.com/docs/5.1#environment-configuration

+0

come per l'idea .env, L'applicazione quindi ottenere automaticamente la produzione url poiché i cant trovare variabile ENV utilizzato in config/app.php? Comunque l'URL ha funzionato :-) – echoashu

+2

@echoashu Per l'idea di '.env', dovresti impostare il valore nella tua configurazione in questo modo:' 'url' => env ('URL', 'http: // localhost/'), '. Ora, se fornisci un valore 'URL' nel tuo file' .env', il valore di configurazione 'url' sarà impostato su quello. Se non si fornisce un valore 'URL' nel proprio file' .env', il valore di configurazione '' url'' sarà impostato sul valore predefinito passato alla funzione 'env()' (in questo caso ''http : // localhost/' '). – patricus

+0

perfetto !! Ho visto la logica simile in database.php e altri file di configurazione e ho pensato la stessa cosa. Detto questo, possiamo memorizzare tutte le costanti statiche importanti nel file .env e accedervi con la funzione 'env()'? Correggimi se sbagliato – echoashu