Laravel RouteServiceProvider
В документации подробно описана функциональность пакета расширения, которая является более информативной, но не более сложной. Обычно конфигурация по умолчанию может удовлетворить большинство потребностей, поэтому вам не нужно устанавливать её после установки пакета расширения. Вам просто нужно быть знакомым с правилами по умолчанию, чтобы использовать его.
[TOC]
Поставщик услуг пакета расширения наследует Laravel App\Providers\RouteServiceProvider
. Поэтому после установки пакета расширений явные привязки, фильтры, пользовательская логика анализа и т. д. модели маршрутизации, определённой в методе boot() в App\Providers\RouteServiceProvider
, остаются доступными.
Следует отметить, что изменения в map()
, mapApiRoutes()
и mapWebRoutes()
в App\Providers\RouteServiceProvider
недействительны, поскольку расширение перезаписывает метод map()
и метод map()
больше не ссылается на mapApiRoutes()
, mapWebRoutes()
.
Пакет расширения использует правила по умолчанию или настраиваемые правила для назначения файлов маршрутизации этим группам промежуточного программного обеспечения и выполнения загрузки.
routes
.Имя файла маршрутизации может использовать правила по умолчанию, или разработчик может настроить соответствие между файлом маршрутизации и группой промежуточного программного обеспечения.
Вы можете настроить формат ответа информации об исключениях на глобальный вывод по умолчанию Json или вы можете независимо настроить формат ответа информации об исключениях в Json для каждой группы промежуточного программного обеспечения, которой разрешено сопоставление файла маршрутизации. (Независимые настройки имеют более высокий приоритет, чем глобальные настройки по умолчанию)
Проверка дублирования URL-адресов (полных URL-адресов с ограничениями домена) во всех маршрутах.
Вы можете настроить, разрешать ли регистрацию маршрутов на основе замыкания.
Вы можете настроить, можно ли дублировать имена именованных маршрутов.
Вы можете настроить, разрешено ли повторное использование контроллера.
Вы можете настроить корневое пространство имён namespace
, используемое каждой группой промежуточного программного обеспечения, которой разрешено сопоставление файлов маршрутизации.
Вы можете настроить поддомен domain
, используемый каждой группой промежуточного программного обеспечения, которой разрешено сопоставление файлов маршрутизации.
Вы можете настроить префикс маршрута prefix
, используемый каждой группой промежуточного программного обеспечения, которой разрешено сопоставление файлов маршрутизации.
Вы можете настроить префикс имени маршрута name
, используемый каждой группой промежуточного программного обеспечения, которой разрешено сопоставление файлов маршрутизации.
Вы можете настроить регулярное выражение ограничения параметра маршрута where
, используемое каждой группой промежуточного программного обеспечения, которой разрешено сопоставление файлов маршрутизации.
PHP >= 7.0
Laravel >= 5.3
Можно установить и использовать Laravel 6 / Laravel 7 / Laravel 8 / Laravel 9!
composer require ixianming/laravel-route-service-provider
В Laravel 5.5+ используется автоматическое обнаружение пакетов, поэтому не требуется вручную добавлять ServiceProvider
.
Не нужно комментировать поставщика услуг маршрутизации Laravel (если только пакет расширения не выдаёт запрос).
Если версия Laravel меньше 5.5 или не используется автоматическое обнаружение пакетов:
Прокомментируйте поставщика услуг маршрутизации Laravel App\Providers\RouteServiceProvider::class
в массиве providers
в config/app.php
.
Добавьте поставщика услуг пакета расширения Ixianming\Routing\RouteServiceProvider::class
в массив providers
в config/app.php
ниже исходного поставщика услуг маршрутизации App\Providers\RouteServiceProvider::class
.
'providers' => [
/*
* Laravel Framework Service Providers...
*/
/*
* Package Service Providers...
*/
/*
* Application Service Providers...
*/
// App\Providers\RouteServiceProvider::class,
Ixianming\Routing\RouteServiceProvider::class
]
Добавьте код перед return
метода render
класса App\Exceptions\Handler
:
if (method_exists(\Ixianming\Routing\ExceptionResponse::class, 'wantsJson')) {
list($request, $exception) = \Ixianming\Routing\ExceptionResponse::wantsJson($request, $exception);
}
После модификации метод render
должен выглядеть следующим образом:
public function render($request, Exception $exception)
{
// Ваш код ...
// Ваш код должен предшествовать этой функции.
if (method_exists(\Ixianming\Routing\ExceptionResponse::class, 'wantsJson')) {
list($request, $exception) = \Ixianming\Routing\ExceptionResponse::wantsJson($request, $exception);
}
// Между функцией и `return` не должно быть кода.
return parent::render($request, $exception);
}
Примечания для удаления
После удаления пакета расширения не забудьте удалить код, который обрабатывает формат вывода ответа на исключение, добавленный в метод render
класса App\Exceptions\Handler
.
После удаления пакета расширения не забудьте удалить код атрибутов и методов, используемых пакетом расширения, добавленных в App\Providers\RouteServiceProvider
.
После удаления пакета расширения не забудьте удалить Ixianming\Routing\RouteServiceProvider::class
в массиве providers
в config/app.php
и раскомментировать App\Providers\RouteServiceProvider::class
.
Использование
Установите группы промежуточного программного обеспечения, которым разрешено сопоставлять файлы маршрутизации
Группы промежуточного программного обеспечения по умолчанию web
и api
пакета расширения могут сопоставлять файлы маршрутизации.
Чтобы добавить группы промежуточного ПО, которым разрешено сопоставление файлов маршрутизации, добавьте атрибут $allowMatchRouteMiddlewareGroups
в app/Providers/RouteServiceProvider.php
:
protected $allowMatchRouteMiddlewareGroups = ['middlewareGroup_1', 'middlewareGroup_2'];
$allowMatchRouteMiddlewareGroups
представляет собой одномерный массив. Значением массива является имя группы промежуточного ПО, которой разрешено сопоставлять файл маршрутизации.$allowMatchRouteMiddlewareGroups
объединяется со значением по умолчанию, поэтому вам нужно только определить новые группы промежуточного ПО, которые разрешено сопоставлять файлам маршрутизации в атрибуте $allowMatchRouteMiddlewareGroups
.$allowMatchRouteMiddlewareGroups
неправильный, будет использоваться значение по умолчанию.Задайте, является ли глобальный формат ответа по умолчанию для исключений Json
Перед использованием этой функции вручную добавьте функцию для обработки формата вывода информации об исключении в методе render
класса App\Exceptions\Handler
, иначе эта функция будет недействительной.
Чтобы установить глобальный формат информации об исключениях по умолчанию в формате Json, добавьте атрибут $defaultExceptionJsonResponse
в app/Providers/RouteServiceProvider.php
и установите его значение в true
:
protected $defaultExceptionJsonResponse = true;
$defaultExceptionJsonResponse
должна быть логическая величина (true
или false
).$defaultExceptionJsonResponse
имеет значение по умолчанию false
.$defaultExceptionJsonResponse
неправильный, то будет использовано значение по умолчанию.$defaultExceptionJsonResponse
равно true
, то формат ответа информации об исключении, выдаваемой приложением, будет Json при доступе к неизвестному маршруту или маршруту под группой промежуточного ПО, которая не настраивает формат ответа информации об исключении.$defaultExceptionJsonResponse
не существует или значение равно null
или значение равно false
, то при доступе к неизвестному маршруту или маршруту под группой промежуточного ПО, которая не настраивает формат ответа информации об исключении, ответ информации об исключении, выданной приложением, формат определяется параметром Accept
заголовка запроса. Формат ответа на исключение, независимо от того, как задано значение атрибута $defaultExceptionJsonResponse
, формат ответа информации об исключении, выдаваемой приложением, определяется пользовательской настройкой группы промежуточного программного обеспечения. (подробности пользовательских правил см. ниже).По умолчанию пакетам расширения разрешено регистрировать и использовать маршрут на основе замыкания.
Рекомендуется запретить регистрацию и использование маршрута на основе замыкания.
Почему следует запретить регистрацию и использование маршрута на основе замыкания:
Когда приложение публикуется, Laravel обычно оптимизируется, и одним из элементов оптимизации является кэш маршрутов. Если версия Laravel ниже 8.0, кэш маршрутов не применяется к маршруту на основе замыканий. При использовании маршрута на основе замыканий в версиях Laravel ниже 8.0 при генерации кэша будет выводиться сообщение об ошибке! Чтобы предотвратить недоступность кэша маршрутов после выпуска кода, лучшим решением будет всегда отключать маршрутизацию на основе замыканий.
Во время командной разработки эта конфигурация может принудительно ограничить способ регистрации маршрутов разработчиками и снизить риск ошибок.
Чтобы запретить регистрацию и использование маршрута на основе замыкания, добавьте атрибут $closureRoute
в app/Providers/RouteServiceProvider.php
и установите его значение равным false
:
protected $closureRoute = false;
Значение атрибута $closureRoute
должно быть логическим значением (true
или false
).
Значение по умолчанию атрибута $closureRoute
равно true
.
Если тип значения атрибута $closureRoute
неправильный, будет использоваться значение по умолчанию.
Когда значение $closureRoute
равно true
, это означает, что регистрация разрешена для использования маршрута на основе замыкания.
Когда значение $closureRoute
равно false
, это означает, что регистрация и использование маршрута на основе замыкания запрещены.
Требования к именам именованных маршрутов по умолчанию уникальны.
Примечание: имя именованного маршрута не должно заканчиваться на .
(английский период). В laravel окончание на .
будет считаться префиксом имени маршрута, а не полным именем.
Почему имена именованных маршрутов должны быть уникальными:
В некоторых сценариях, где именованные маршруты используются для управления разрешениями или создания URL-адресов, именованные маршруты с одинаковыми именами могут вызвать путаницу в бизнесе.
В некоторых случаях, когда требуется, чтобы имя маршрута было уникальным, разработчик может даже не осознавать, что имя маршрута повторяется при определении маршрута без двойной проверки.
Если имя именованного маршрута допускает дублирование. Тогда URL именованного маршрута, сгенерированный с использованием метода route()
, может не соответствовать желаемому.
Чтобы разрешить дублирование имён для именованных маршрутов, добавьте атрибут $uniqueRouteName
в app/Providers/RouteServiceProvider.php
и задайте его значение равным false
:
protected $uniqueRouteName = false;
Значение атрибута $uniqueRouteName
должно быть логическим значением (true
или false
).
Значение атрибута $uniqueRouteName
по умолчанию равно true
.
Если тип значения атрибута $uniqueRouteName
неправильный, то будет использоваться значение по умолчанию.
Когда значение атрибута $uniqueRouteName
равно true
, это означает, что имя именованного маршрута должно быть уникальным.
Когда значение атрибута $uniqueRouteName
равно false
, это означает, что разрешено дублирование имени именованного маршрута.
После запрета именованных маршрутов с одинаковым именем, если во всех маршрутах есть именованные маршруты с одинаковым именем, будет выдано сообщение об ошибке. Пакет расширения также указывает путь к файлу маршрута и строку, где находится именованный маршрут с таким же именем, а также группу промежуточного ПО, к которой он принадлежит, чтобы быстро найти проблему.
Контроллеры по умолчанию разрешены к повторному использованию.
Зачем запрещать повторное использование контроллеров:
Обычно метод контроллера соответствует бизнес-логике. Использование одного и того же контроллера для нескольких маршрутов означает, что эта услуга может... Доступ к нему можно получить через несколько URL-адресов, что неудобно для управления и обслуживания URL-адресов и может легко привести к утечкам в некоторых приложениях на основе URL-адресов для управления разрешениями.
Если повторное использование контроллера разрешено, то URL-адрес контроллера, сгенерированный с помощью метода action()
, может не соответствовать желаемому.
Если вам необходимо предотвратить повторное использование контроллера, добавьте свойство $allowReuseAction
в app/Providers/RouteServiceProvider.php
и установите его значение в false
:
protected $allowReuseAction = false;
Значение атрибута $allowReuseAction
должно быть логическим значением (true
или false
).
Когда значение по умолчанию атрибута $allowReuseAction
равно true
.
При неправильном типе значения атрибута $allowReuseAction
будет использоваться значение по умолчанию.
Когда значение атрибута $allowReuseAction
равно true
, повторное использование контроллера разрешается.
Когда значение свойства $allowReuseAction
равно false
, это означает, что повторное использование контроллера запрещено.
После запрета повторного использования контроллера во всех маршрутах будет проверяться, используется ли контроллер повторно. Если он используется повторно, будет выдано сообщение об ошибке. Пакет расширения также указывает путь к файлу маршрута и строку, где находится маршрут повторно используемого контроллера, а также группу промежуточного программного обеспечения, к которой он принадлежит, чтобы быстро найти проблему.
Эта функция является обязательной и не предоставляет возможности переключения.
В Laravel, если вы определяете один и тот же URL, более поздние маршруты будут перезаписывать существующие. Дублирующиеся определения — это не то, чего мы ожидаем, потому что они делают маршрутизацию беспорядочной, трудной для поддержания и управления.
После установки пакета расширения пакет расширения проверит наличие повторяющихся URL-адресов во всех маршрутах. Если они есть, будет выброшено сообщение об исключении. Пакет расширения также укажет путь к файлу маршрутизации и строку, в которой находится повторяющийся URL-адрес, а также группу промежуточного ПО, к которой он относится, чтобы быстро определить проблему.
URL относится к полному URL с ограничениями доменного имени.
После установки пакета расширения соответствующий файл маршрутизации автоматически сопоставляется для каждой группы промежуточного программного обеспечения, которая может соответствовать файлу маршрутизации. Эти файлы маршрутизации могут быть размещены в любом месте каталога routes
.
Правила соответствия по умолчанию:
Назовите его {middlewareGroupName}.php
.
Начните с {middlewareGroupName}_
.
Закончите на _{middlewareGroupName}.php
.
Файлы маршрутизации, имена которых соответствуют вышеуказанным правилам, будут назначены группе промежуточного программного обеспечения с соответствующими именами.
Примечание: В правилах по умолчанию путь или имя файла не чувствительны к регистру.
Примечание: Один и тот же файл маршрутизации в каталоге routes
не может быть загружен несколькими группами промежуточного программного обеспечения.
Примечание: Когда один и тот же файл маршрута в каталоге routes
загружается более 3 раз, пакет расширения выдаст исключение. Разработчик должен проверить, цитируется ли файл маршрутизации повторно. Если правила соответствия маршрутизации настроены, вы также должны проверить правильность правил соответствия.
Например:
routes
|-- web.php
|-- api.php
|-- web_errorTest_api.php
|-- channels.php
|-- console.php
|-- welcome_web.PHP
|-- welcome_api.PHP
|-- web_User.php
|-- api_User.php
|-- Role
|-- role_WEB.php
|-- role_API.php
web.php
, welcome_web.PHP
, web_User.php
, Role/role_WEB.php
эти файлы маршрутизации будут назначены группе web
промежуточного программного обеспечения.
api.php
, welcome_api.PHP
, api_User.php
, Role/role_API.php
эти файлы маршрутизации будут назначены группе api
промежуточного программного обеспечения.
При загрузке файла маршрутизации web_errorTest_api.php
пакет расширения выдаст ошибку, поскольку файл назначен как группе web
, так и группе api
промежуточного программного обеспечения. Разработчики должны учитывать это при именовании файлов маршрутизации с использованием правил по умолчанию. Корневое пространство имён, используемое всеми группами промежуточного ПО, которым разрешено сопоставлять файлы маршрутизации, по умолчанию имеет значение атрибута $namespace
в App\Providers\RouteServiceProvider
.
Имя поддомена, используемого всеми группами промежуточного программного обеспечения, которым разрешено сопоставление файлов маршрутизации, по умолчанию пусто.
Префикс для группы промежуточного ПО web
по умолчанию пуст.
Префикс для других групп промежуточного ПО, которые могут сопоставлять файлы маршрутизации, использует имя группы промежуточного ПО по умолчанию.
Например:
По умолчанию префиксом группы промежуточного ПО web
является пустая строка; префикс группы промежуточного ПО api
использует имя api
. И так далее.
Префикс имени маршрута name
, используемый всеми группами промежуточного ПО, которым разрешено сопоставлять файлы маршрутизации, по умолчанию пуст.
Регулярные выражения ограничений where
параметров маршрутизации, используемые всеми группами промежуточного ПО, которым разрешено сопоставлять файлы маршрутизации, по умолчанию пусты.
Прежде чем использовать эту функцию, вручную добавьте функцию для обработки формата вывода информации об исключениях в методе render
класса App\Exceptions\Handler
, иначе эта функция будет недействительной.
Формат ответа сообщений об исключениях группы промежуточного ПО api
по умолчанию — Json.
Формат сообщения об исключении для других групп промежуточного ПО, которым разрешено сопоставлять файл маршрутизации, определяется глобальным параметром формата сообщения об исключении.
Пользовательские правила переопределяют правила по умолчанию, а не настроенные продолжают использовать правила по умолчанию.
Совет: при настройке пользовательских правил, если есть ошибка в настройке, будет выдано исключение, и формат ответа информации об исключении будет определяться правилом по умолчанию.
Пользовательские правила действительны только для групп промежуточного ПО, которым разрешено сопоставлять файлы маршрутизации. Если группе промежуточного ПО не разрешено сопоставлять файлы маршрутизации, даже правила бесполезны.
Чтобы установить пользовательские правила, добавьте метод в app/Providers/RouteServiceProvider.php
:
protected function customMiddlewareGroupsConfig()
{
return array(
'{middlewareGroupName}' => array(
'namespace' => '',
'domain' => '',
'prefix' => '',
'name' => '',
'where' => [],
'eJsonResponse' => false,
'matchRule' => function ($fileRelativePath) {
// your code ...
// Возвращаемое значение должно быть логическим.
return false;
}
)
// ...
);
}
Метод возвращает двумерный массив. Одномерный ключ {middlewareGroupName}
— это имя группы промежуточного ПО, которую необходимо настроить.
Значение {middlewareGroupName}
также является массивом. Настраиваемые ключи: namespace
, domain
, prefix
, name
, where
, eJsonResponse
и matchRule
.
Напоминание: если группа промежуточного ПО настраивает корневое пространство имён и оно не совпадает со значением свойства $namespace
в App\Providers\RouteServiceProvider
, то при использовании таких методов, как action()
, redirectToAction()
и т. д., где входящий параметр представляет собой строку контроллера, строка контроллера с полным пространством имён, начинающимся с \
, должна передаваться, когда входящий параметр принадлежит контроллеру в этой группе промежуточного ПО.
Рекомендация: независимо от того, настраивается ли корневое пространство имён или нет, строка контроллера с полным пространством имён, начинающаяся с \
, должна быть передана при использовании методов с входящим параметром строки контроллера, таких как action()
и redirectToAction()
.
Например.
Контроллер
Welcome@index
принадлежит группе промежуточного ПОweb
и использует корневое пространство имён по умолчаниюApp\Http\Controllers
. При использовании методаaction()
вы можете вызвать:
action('Welcome@index');
илиaction('\App\Http\Controllers\Welcome@index');
.После настройки корневого пространства имён необходимо вызвать: action('\CustomNamespace\Welcome@index');
.
Если вам нужно настроить корневое пространство имён, используемое группой промежуточного программного обеспечения, установите пару ключ-значение namespace
в массиве конфигурации группы промежуточного ПО.
— Значение namespace
должно быть строкой или null
.
— Если тип значения namespace
неверен, будет выброшено исключение.
Если вам не нужно настраивать корневое пространство имен группы промежуточного программного обеспечения, пожалуйста, не устанавливайте пару ключ-значение этого элемента в массиве конфигурации группы промежуточного ПО, иначе будет перезаписано значение по умолчанию.
Чтобы настроить ограничения субдомена, используемые группой промежуточного ПО, установите пару ключ-значение domain
в массиве конфигурации этой группы промежуточного ПО.
— Значение domain
должно быть строкой или null
.
— Если тип значения domain
неверен, будет выброшено исключение.
Если вам не нужно настраивать ограничения субдоменов группы промежуточного программного обеспечения, не устанавливайте пары ключ-значение для этого элемента в массиве конфигурации этой группы промежуточного ПО, иначе значение по умолчанию будет перезаписано.
Чтобы настроить префикс маршрутизации, используемый группой промежуточного ПО, установите пару ключ-значение prefix
в массиве конфигурации этой группы промежуточного ПО.
— Значение prefix
должно быть строкой или null
.
— Если тип значения prefix
неверен, будет выброшено исключение.
Если вам не нужно настраивать префикс маршрутизации группы промежуточного программного обеспечения, не устанавливайте пары ключ-значение для этого элемента в массиве конфигурации этой группы промежуточного ПО, иначе значение по умолчанию будет перезаписано.
Чтобы настроить имя префикса маршрута, используемое группой промежуточного ПО, установите пару ключ-значение name
в массиве конфигурации этой группы промежуточного ПО.
— Значение name
должно быть строкой или null
.
— Если тип значения name
неверен, будет выброшено исключение.
Если вам не нужно настраивать имя префикса маршрута группы промежуточного программного обеспечения, не устанавливайте пары ключ-значение для этого элемента в массиве конфигурации этой группы промежучного ПО, иначе значение по умолчанию будет перезаписано.
Чтобы настроить ограничение регулярного выражения параметра маршрутизации, используемое группой промежуточного ПО, установите пару ключ-значение where
в массиве конфигурации этой группы промежуточного ПО.
— Значением where
должен быть массив или null
— Если тип значения where
неверен, будет выброшено исключение.
Как правильно установить ограничения регулярного выражения для параметров маршрутизации см. в документации Laravel — Маршрутизация — Ограничения регулярного выражения.
Если вам не нужно настраивать ограничение регулярного выражения параметров маршрутизации группы промежуточного программного обеспечения, не устанавливайте пары ключ-значения для этого элемента в массиве конфигурации этой группы промежуточного ПО, иначе значение по умолчанию будет перезаписано.
Прежде чем использовать эту функцию, вручную добавьте функцию для обработки формата вывода информации об исключениях в методе render
класса App\Exceptions\Handler
, иначе эта функция будет недействительной.
Если вам необходимо настроить, является ли формат сообщения об ошибке группы промежуточного ПО в формате JSON, установите пару ключ-значение eJsonResponse
в массиве конфигурации промежуточного ПО.
— Значение eJsonResponse
должно быть логическим значением (true
или false
).
— Если тип значения eJsonResponse
неверен, будет выброшено исключение. Нуль, формат ответа на сообщение об исключении определяется по умолчанию и глобальной настройкой по умолчанию $defaultExceptionJsonResponse.
Когда значение eJsonResponse равно true, при обращении к маршруту в этой группе промежуточного программного обеспечения ответ на выброшенное сообщение об ошибке имеет формат Json.
Если значение eJsonResponse равно false, то формат сообщения об ошибке определяется параметром Accept заголовка запроса при обращении к маршруту под этой группой промежуточного ПО.
Если вам не нужно настраивать формат ответа сообщения об ошибке для группы промежуточного ПО, не устанавливайте пары ключ-значение для этого элемента в массиве конфигурации этой группы промежуточного ПО, иначе будет перезаписано значение по умолчанию.
Если необходимо настроить правила соответствия файлов маршрутизации, используемые группой промежуточного ПО, установите пару ключ-значение matchRule в массиве конфигурации группы промежуточного ПО.
Примечание: когда один и тот же файл маршрута в каталоге routes загружается более 3 раз, пакет расширения выдаст исключение. Разработчик должен проверить, повторяется ли цитирование файла маршрутизации. Если правила сопоставления маршрутов настроены, вы также должны проверить правильность правил сопоставления.
Значение matchRule — это замыкание.
Путь файла маршрутизации будет передан в замыкание. Этот путь относится к каталогу routes. Разработчику необходимо закодировать правила соответствия пути файла маршрутизации и группы промежуточного ПО. Если путь файла маршрутизации соответствует условиям соответствия, замыкание должно вернуть true, в противном случае оно возвращает false.
Примечание: переданный замыканию путь чувствителен к регистру.
//e.g.
//Пользовательские правила соответствия для веб-групп промежуточного ПО
'web' => array(
'matchRule' => function ($fileRelativePath) {
$fileRelativePath = strtolower($fileRelativePath); //Переводим в нижний регистр
if (Str::endsWith($fileRelativePath, '_web.php')) {
//Если файл маршрутизации заканчивается на `_web.php`, он назначается группе веб-промежуточного ПО
return true;
} else {
return false;
}
}
)
Возвращаемое значение замыкания должно быть логическим (true или false).
Выдаётся исключение, если значение matchRule не является замыканием или возвращаемое значение замыкания не является логическим значением.
Если вам не нужно настраивать правила соответствия файлов маршрутизации группы промежуточного ПО, не устанавливайте пару ключ-значение для этого элемента в массив конфигурации группы промежуточного ПО, иначе значение по умолчанию будет перезаписано.
Когда приложение выпущено в рабочую среду, не забудьте создать кэш маршрутов в рабочей среде!
Введите команду:
php artisan route:cache
Эта команда создаёт файл кэша маршрута в каталоге bootstrap/cache.
Обратите внимание, что кэш маршрута не применяется к маршрутам на основе замыканий. Чтобы использовать кэш маршрута, все маршруты на основе замыканий должны быть преобразованы в классы контроллеров.
При использовании маршрута на основе замыкания при создании кэша будет выдано сообщение об ошибке!
Кроме того, если вы добавляете новые маршруты, вы должны создать новый кэш маршрутов!
Если вы хотите удалить файл кэша маршрутов, вы можете использовать команду:
php artisan route:clear
Пакет расширения представляет собой программное обеспечение с открытым исходным кодом, лицензированное по лицензии MIT.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )