Автор: ACym.ru - March 30, 2017 1:00 pm

Как быстро выдать на морду 503 ошибку (в блэйде, естественно!)

В Laravel предусмотрен механизм закрытия сайта на техобслуживание.

Посетители сайта увидят заставку - страницу 503-й ошибки (чуть позже - о том, откуда она берется).

На локальном сервере или VDS это делается одной простой командой в терминале или командной строке, в зависимости от того, в какой среде вы работаете:

php artisan down

Однако, того же эффекта можно достичь и на обычном сайте на шареде.

Для этого достаточно в папку \storage\framework поместить файл down.

Этот файл может быть пустым, и все прекрасно сработает.

Технически, команда php artisan down, создавая этот файл, помещает туда дополнительную информацию такого вода:

{
    "time": 1490591094,
    "message": null,
    "retry": null
}

Связано это с тем, что Laravel может отработать дополнительные параметры, поэтому указывается время перехода в режим техобслуживания, сообщение (message), которое будет писаться в логи, и параметр retry в качестве указания промежутка времени, через который можно повторить попытку входа на сайт.

Но если сообщение и retry вам не нужны, то, как я уже сказал выше в заметке о переводе работающего на Laravel сайта в режим технического обслуживания на сайте заметок о работе с фрэймворком Laravel LaraNotes.ru, куда я вас всех приглашаю, и предлагаю публиковать на LaraNotes.ru свои записки по работе с фрэймворком Laravel, вы вполне можете обойтись размещением пустого файла down в папке \storage\framework:

storage\framework\down

После того, как период технического обслуживания закончится, просто удалите файл down, и сайт заработает в штатном режиме.

В терминале или командной строке это достигается выполнением команды

php artisan up

Отмечу также, что при размещении в папке \storage\framework файла down, посетителям выдается 503-я ошибка о пребывании сайта в нерабочем состоянии.

Шаблон страницы, которую вы хотите показать посетителям при переводе сайта в режим техобслуживания, можно разместить в стандартной для Laravel папке шаблонов для отработки системных ошибок, а именно

\resources\views\errors\503.blade.php

и оформить страницу закрытия на техобслуживание как вашей душе будет угодно, в том числе включив в нее при необходимости форму подписки, и др. материалы (т.е. по типу лэндинга).

За сим все, удачного кодинга!

И не забывайте заходить на сайт коротких практических заметок по работе с фрэймоврком Laravel LaraNotes.ru, и публиковать ваши собственные наработки.

Ваш Андрей Кимвр