laravel 5中应用程序URL的含义是什么?

时间:2015-06-30 03:35:48

标签: php laravel queue laravel-5 artisan

在laravel源Config/app.php中的

url的实际用途是什么?

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

我的意思是它应该是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公用文件夹为/var/www/laravel/public 并且http://mydomainname.com指向在/var/www/laravel/public目录

处解析

用例:

我将使用来自laravel schedular的{​​{1}} /app/Console/Kernel.php将调度periodic sendMail commands,然后将在数据库和queue listner中对要发送的邮件进行排队比正常处理队列

队列在localhost(我的本地xamp服务器)上正常工作但是我担心生产中的url值应该是什么

2 个答案:

答案 0 :(得分:36)

当用户访问您的网站时,Laravel会从PHP的超级全局($ _SERVER,$ _GET,$ _POST等)获取有关请求的大量信息。部分信息是请求URL。

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

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

但是,工匠,命令,工作等不具备此信息的好处。它不是来自用户的普通HTTP请求,而是从命令行运行的PHP命令。因此,Laravel需要一种方法来确定应用程序的URL应该是什么。这是配置值的来源。

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

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

答案 1 :(得分:6)

在制作时,应将其设置为

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

正如你所提到的,它将被工匠的命令和队列使用。

您可以利用.env存储您的实时域名。 http://laravel.com/docs/5.1#environment-configuration