Какое значение имеет URL-адрес приложения в laravel 5

в Config/app.php в исходном коде 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 - /var/www/laravel/public, а http://mydomainname.com указывается для разрешения в каталоге /var/www/laravel/public

Пример использования:

Я буду использовать laravel schedular из /app/Console/Kernel.php, который будет отправлять periodic sendMail commands, который, в свою очередь, будет ставить в очередь отправляемые письма в базе данных и queue listner, чем будет обрабатывать очередь как обычно

Очереди работают нормально на localhost (мой локальный сервер xamp), однако меня беспокоит, каким должно быть значение url в производстве


person echoashu    schedule 30.06.2015    source источник
comment
Если текущий url установлен на localhost, используйте доменное имя   -  person Bankzilla    schedule 30.06.2015


Ответы (2)


Когда пользователь посещает ваш веб-сайт, 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-запроса, URL-адрес базового приложения будет взят из значения конфигурации, установленного в config/app.php.

Надеюсь, теперь должно быть немного понятнее, значение url должно быть установлено на http-адрес вашего приложения, а не на путь к каталогу любого типа. В вашем примере это должно быть http://mydomainname.com.

person patricus    schedule 30.06.2015
comment
Это лучший ответ и достаточно информативный, чтобы его можно было понять. Спасибо :-) - person echoashu; 30.06.2015
comment
Я искал информацию об этом параметре конфигурации Laravel, этот ответ был идеальным. Спасибо. - person Dario Corno; 02.03.2016
comment
Все это имеет смысл сейчас. Спасибо! - person Staysee; 05.03.2016
comment
что делать, если у меня нет домена? и есть только IP-адрес сервера ?? - person Hossam Maher; 14.05.2017
comment
Собирался прокомментировать IP. Я использую LAN-сервер, поэтому вместо этого я использую ip, например. http://192.168.1.20 Я еще не создал ничего, что необходимо для этого, поэтому я читаю этот пост, я надеялся найти больше информации о том, для чего именно он предназначен, и эта тема недостаточно ясна, ИМО. Я знал, что это было для artisan, но каковы некоторые применения этого приложения? помимо электронной почты? - person blamb; 15.05.2017

во время производства он должен быть установлен на

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

Как вы упомянули, он будет использоваться ремесленными командами и очередями.

Вы можете использовать .env для хранения своего действующего домена. http://laravel.com/docs/5.1#environment-configuration

person Almazik G    schedule 30.06.2015
comment
Что касается идеи .env, получает ли приложение автоматически рабочий URL-адрес, поскольку я не могу найти переменную ENV, используемую в config / app.php? В любом случае этот URL-адрес работал :-) - person echoashu; 30.06.2015
comment
@echoashu Для идеи .env вы должны установить значение в своей конфигурации следующим образом: 'url' => env('URL', 'http://localhost/'),. Теперь, если вы укажете значение URL в вашем .env файле, для него будет установлено значение конфигурации url. Если вы не укажете значение URL в вашем .env файле, для значения конфигурации 'url' будет установлено значение по умолчанию, переданное в функцию env() (в данном случае 'http://localhost/'). - person patricus; 30.06.2015
comment
идеально!! Я видел аналогичную логику в database.php и других файлах конфигурации и думал то же самое. Тем не менее, мы можем сохранить столько важных статических констант в файле .env и получить к ним доступ с помощью функции env()? Поправьте меня если не прав - person echoashu; 30.06.2015
comment
@echoashu да, правильно. Событие, хотя это предпочтительный способ обойти. Это позволяет хранить конфиденциальные данные отдельно от контроля версий. - person Almazik G; 30.06.2015