dans Config/app.php
dans laravel source, quelle est l'utilisation réelle de url
?
Il indique l'URL de l'application à utiliser par artisan command line tool
, alors qu'est-ce que cela devrait être réellement?
Je veux dire que ce devrait être http://mydomainname.com
ou devrait-il être /var/www/laravel/
ou /var/www/laravel/public
Configuration actuelle
/*
|--------------------------------------------------------------------------
| 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/',
À condition que ma source d'application se trouve à /var/www/
répertoire et laravel est /var/www/laravel/public
Et le http://mydomainname.com
pointe vers /var/www/laravel/public
répertoire
Cas d'utilisation:
Je vais utiliser laravel schedular
de /app/Console/Kernel.php
qui expédiera periodic sendMail commands
et qui à son tour mettra en file d'attente les e-mails à envoyer dans la base de données et queue listner
que traitera normalement la file d'attente
Les files d'attente fonctionnent bien sur localhost (mon serveur xamp local), mais je suis préoccupé par la valeur de url
en production
Lorsqu'un utilisateur visite votre site Web, Laravel obtient beaucoup d'informations dont il a besoin sur la demande des superglobaux de PHP ($ _SERVER, $ _GET, $ _POST, etc.). Une partie de ces informations est le URL de demande.
Par exemple, si vous accédez aux méthodes de demande url()
ou path()
, ces informations ont été récupérées via le superglobal $ _SERVER:
$url = Request::url();
$path = Request::path();
Cependant, l'artisan, les commandes, les travaux, etc. ne bénéficient pas de ces informations. Ce n'est pas une requête HTTP normale provenant de l'utilisateur, c'est une commande PHP exécutée à partir de la ligne de commande. Pour cette raison, Laravel a besoin d'un moyen de déterminer l'URL de l'application. C'est là qu'intervient la valeur de configuration.
Dans votre exemple, vous prévoyez d'envoyer des e-mails à partir d'une file d'attente. Imaginez que vous ayez besoin d'inclure un lien vers un itinéraire de votre site Web dans l'un des e-mails, vous utilisez donc UrlGenerator pour obtenir l'url du lien (URL::route('route.name')
). Étant donné que ce code est exécuté dans une commande et n'est lié à aucun type de demande HTTP, l'URL de l'application de base sera récupérée à partir de la valeur de configuration que vous avez définie dans config/app.php
.
Comme nous l'espérons, cela devrait être un peu plus clair maintenant, la valeur url
doit être définie sur l'URL http de votre application, pas sur n'importe quel type de chemin de répertoire. Dans votre exemple, il doit s'agir de http://mydomainname.com
.
en production, il doit être réglé sur
'url' => 'http://your-live-domain.com',
Comme vous l'avez mentionné, il sera utilisé par les commandes et les files d'attente artisanales.
Vous pouvez tirer parti de .env
pour stocker votre domaine en direct. http://laravel.com/docs/5.1#environment-configuration