Application URL 在 laravel 5 中的意义是什么

What is the significance of Application URL in laravel 5

in Config/app.php in laravel源码,url的实际用途是什么?

它说应用程序 URL 将被 artisan command line tool 使用,那么它实际上应该是什么?

我的意思是应该是http://mydomainname.com还是应该是/var/www/laravel/还是/var/www/laravel/public

当前配置

/*
|--------------------------------------------------------------------------
| 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/',

假设我的应用程序源位于 /var/www/ 目录并且 laravel public 文件夹是 /var/www/laravel/public 并且 http://mydomainname.com 指向解析 /var/www/laravel/public 目录

用例:

我将使用 /app/Console/Kernel.php 中的 laravel schedular,它将发送 periodic sendMail commands,然后将要在数据库中发送的邮件排队,queue listner比正常处理队列

队列在本地主机(我的本地 xamp 服务器)上工作正常,但我担心生产中的 url 值应该是多少

生产时,应设置为

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

正如您提到的,它将被 artisan 命令和队列使用。

您可以利用 .env 来存储您的活动域。 http://laravel.com/docs/5.1#environment-configuration

当用户访问您的网站时,Laravel 从 PHP 的 superglobals($_SERVER、$_GET、$_POST 等)获取有关请求的大量信息。此信息的一部分是请求 URL.

例如,如果您访问请求方法 url()path(),则此信息是通过 $_SERVER 超全局检索的:

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

但是,artisan、commands、jobs 等无法从这些信息中获益。它不是来自用户的普通 HTTP 请求,它是来自命令行的 PHP 命令 运行。因此,Laravel 需要一种方法来确定应用程序的 url 应该是什么。这是配置值的来源。

在您的示例中,您计划从队列中发送电子邮件。想象一下,您需要在其中一封电子邮件中包含指向您网站路由的 link,因此您使用 UrlGenerator 为 link (URL::route('route.name')) 获取 url .由于此代码在命令中 运行,并且与任何类型的 HTTP 请求无关,因此将从您在 config/app.php 中设置的配置值中选取基本应用程序 url .

现在应该更清楚了,url 值应该设置为应用程序的 http url,而不是任何类型的目录路径。在您的示例中,它应该是 http://mydomainname.com.