web-dev-qa-db-fra.com

Quelle est la signification de l'URL de l'application dans laravel 5

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

21
echoashu

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.

36
patricus

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

6
Almazik G