在Config/app.php
中,在Laravel源代码中,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
目录中解析
用例:
我将使用来自/app/Console/Kernel.php
laravel schedular
,它将调度periodic sendMail commands
,进而将要在数据库中发送的邮件排队,并queue listner
正常处理队列
队列在本地主机(我的本地 xamp 服务器(上工作正常,但我担心生产中的url
值应该是多少
当用户访问您的网站时,Laravel会从PHP的超全局变量(_SERVER美元,_GET美元,_POST美元等(获得有关请求的大量信息。此信息的一部分是请求 URL。
例如,如果您访问请求方法 url()
或 path()
,则通过 $_SERVER 超全局检索此信息:
$url = Request::url();
$path = Request::path();
但是,工匠、命令、工作等没有这些信息的好处。它不是来自用户的正常HTTP请求,而是从命令行运行的PHP命令。因此,Laravel需要一种方法来确定应用程序的URL应该是什么。这就是配置值的用武之地。
在您的示例中,您计划从队列发送电子邮件。假设您需要在其中一封电子邮件中包含指向您网站路线的链接,因此您使用 UrlGenerator 获取链接的 url ( URL::route('route.name')
(。由于此代码在命令中运行,并且与任何类型的 HTTP 请求无关,因此将从您在 config/app.php
中设置的配置值中选取基本应用程序 url。
希望现在更清楚一点,url
值应设置为应用程序的 http url,而不是任何类型的目录路径。在您的示例中,它应该是 http://mydomainname.com
.
在生产时,它应该设置为
'url' => 'http://your-live-domain.com',
正如你提到的,它将被工匠命令和队列使用。
您可以利用.env
来存储您的实时域。 http://laravel.com/docs/5.1#environment-configuration