Перечень возможных ошибок при установке и первом использовании фреймворка:
При первом запуске веб-сервер не отображает демонстрационную страницу.
Проблема может быть в том, что веб-сервер направлен не в публичную папку проекта, а в корневую или в другое место. Также это может указывать на неправильную настройку веб-сервера.
HL01_ERROR Не удалось сохранить кэш! Ошибка при записи файла в папку /storage/. Необходимо расширить права веб-сервера для этой папки и вложений
Как видно из текста ошибки нужно установить права на папку /storage/ проекта. Если вы направили в папку другой веб-сервер, то есть также вероятность, что первый создал там файлы кеша под правами, у которых нет доступа для текущего. Настройка прав доступа в документации.
HL02_ERROR Ошибка составления маршрутов. Не совпадает количество открытых и закрытых тегов групп в маршрутах
Каждая группа должна быть завершена одним тегом endGroup(). При использовании альтернативного синтаксиса групп такой ошибки не появится. Группировка маршрутов в документации.
HL03_ERROR Ошибка составления маршрутов. Не обнаружен завершающий тег endGroup для группы маршрутов
Аналогично как в предыдущей ошибке каждая группа должна быть завершена одним тегом endGroup().
HL04_ERROR Ошибка составления маршрутов. В методе %method%() контент уже передан как второй параметр, поэтому контроллер недействителен
При добавлении контроллера в маршрутах может возникнуть такая ошибка. Например, если вы указали view() функцию с шаблоном и одновременно контроллер - произойдет конфликт, так как нельзя определить что именно нужно выводить. Можно четырьмя правильными способами указать выводимые данные:
// Вариант 1. Вывод простого текста.
Route::get('/path/', 'Text');
// Вариант 2. Из указанного шаблона.
.Route::get('/path/', view('default'));
// Вариант 3. С назначением контроллера.
Route::get('/path/')->controller(DefaultController::class);
// Вариант 4. С назначением модуля.
Route::get('/path/')->module('default', ExampleModuleController::class);
HL05_ERROR Ошибка составления маршрутов. Ключи метода where() могут быть только строковыми и соответствовать подставляемому значению в маршруте
Когда вы указываете ключ в методе where() для маршрута, то этот ключ может быть только строковым как и соответствующее ему регулярное выражение. Убедитесь, что в метод подаётся правильный ассоциативный массив.
HL06_ERROR Ошибка составления маршрутов. В методе where() одного маршрута ключи не должны повторятся и должны соответствовать заменяемым значениям
Как указано в тексте ошибки - ключи условий where() должны соответствовать заменяемым частям адреса. Например:
Route::get('/parts/{first}/{second}/{third}', 'Text')->where(['first' => '[0-9]+', 'second' => '[a-z]+']);
Здесь динамические части адреса под названием 'first' и 'second' снабжены соответствующими условиями, а для 'third' не указано соответствия. Проверяются таким образом только две части, первая может содержать только цифры, вторая только латинские буквы в нижнем регистре.
HL07_ERROR Ошибка составления маршрутов. В методе where() переданные значения должны быть валидными регулярными выражениями
Используйте регулярные выражения в where() стандартного вида, например в формате /[a-z]+/i или [a-zA-Z]+.
HL08_ERROR Ошибка составления маршрутов. Количество открытых и закрытых символов { и } должно совпадать для валидной вставки динамического значения
Пример из документации (динамические значения заключены в фигурные скобки):
Route::get('/resource/{version}/{page}/', 'Dynamic address used');
HL09_ERROR Ошибка составления маршрутов. Некорректное положение символов { и } для правильной вставки динамического значения
Проверьте, что теги динамических значений правильно заключены в фигурные скобки. См. предыдущий пример.
HL10_ERROR Ошибка составления маршрутов. Некорректное положение символа ? для обозначения динамического окончания адреса
В адресе маршрута можно указать, что его последняя часть (и только последняя) может отсутствовать: Примеры из документации (обратите внимание на правильное положение символа ?):
Route::get('/profile/user/{id?}/', 'Variable ID value');
Route::get('/contacts/form?/', 'Optional end part');
HL11_ERROR Ошибка составления маршрутов. Количество контроллеров у маршрута %method%() не может быть больше одного
Как видно из описания ошибки - в одном маршруте может быть только один контроллер (или модуль).
HL12_ERROR Ошибка составления маршрутов. Не назначен контент для метода %method%(). Он может быть назначен при помощи контроллера или в самом методе вторым аргументом
В текущем состоянии маршрут не завершён, так как действие при его совпадении не назначено.
HL13_ERROR Ошибка составления маршрутов. Тип HTTP-метода не поддерживается или указан неправильно, доступны: %types%
Фреймворк по умолчанию поддерживает определённый набор HTTP-методов. Это 'GET', 'POST', 'DELETE', 'PUT', 'PATCH', 'OPTIONS', и 'HEAD'. Набор можно дополнить. Поэтому при указании не поддерживаемого метода в маршруте может появится такая ошибка.
HL14_ERROR Ошибка составления маршрутов. При назначении HTTP-методов в fallback() они не должны повторяться в различных применениях fallback()
Если вы используете fallback, то можно назначить только одно отношение к конкретному HTTP-методу.
HL15_ERROR Отсутствует назначенный класс по пути: %path%.
Перед созданием кеша для маршрутов фреймворк дополнительно проверяет существование указанных в них классов контроллеров.
HL16_ERROR Ошибка составления маршрутов. Отсутствует назначенный шаблон для метода %method%() по пути: %path%
Перед созданием кеша для маршрутов фреймворк проверяет существование файлов для указанных в них шаблонов.
HL17_ERROR Ошибка составления маршрутов. Недопустимое сочетание символов (две точки подряд) в адресе маршрута. Если это вариативный маршрут, используйте троеточие в начале условия последней его части
Специфическая ошибка, так как во фреймворке можно использовать вариативные маршруты и возможно это один из них, но с ошибкой в количестве точек в начале условия. Или же это опечатка, которую нужно исправить.
HL18_ERROR Ошибка составления маршрутов. Использование одновременно динамического /{example?}/ и вариативного типа /...number/ в одном маршруте не допускается
Ошибка указывает на то, что нельзя задать динамическую часть в маршруте в котором уже используется вариативное назначение таких частей.
HL19_ERROR Ошибка составления маршрутов. Неправильно расположен вариативный маршрут или передан в неправильном формате. Он должен находиться в конечной части маршрута и назначаться один раз
Неправильное использование вариативного маршрута. Правильный пример из документации:
Route::get('/example/...0-5/', 'From 0 to 5 arbitrary parts');
HL20_ERROR Ошибка составления маршрутов. Название name() %name% для %method%() маршрута должно быть установлено один раз и содержать только латинские символы и цифры в любом регистре. Возможно еще наличие тире и точки
Напоминание о том, что имя маршруту можно задать только один раз и оно должно соответствовать определённому формату.
HL21_ERROR Ошибка составления маршрутов. Класс контроллера %class% или вызываемый метод %method% в нём не обнаружен
Фреймворк при составлении кеша маршрутов дополнительно проверяет не только наличие классов контроллеров, но и назначенные вызываемые методы в них. Если эти методы не содержат в маршруте изменяемых частей.
HL22_ERROR Ошибка составления маршрутов. Для метода domain() неправильно задано название: %name%. Убедитесь, что значение в нижнем регистре
Указание на то, что домен нужно указывать только в нижнем регистре для правильной обработки в маршруте.
HL23_ERROR Ошибка составления маршрутов. Неправильно задано регулярное выражение %regexp% для метода domain()
Ошибка в регулярном выражении для задания маски доменам.
HL24_ERROR Ошибка составления маршрутов. Неправильно задан уровень для метода domain()
Для указания домена существуют уровни, они соотвествуют его частям и поддоменам. Параметр $level в методе domain($name, $level) отвечает за уровень домена. Сам домен обычно под уровнем 2. Схема: subdomain(3).domain(2).com(1) или subdomain(4).domain(3).net(2).com(1)
HL25_ERROR Ошибка составления маршрутов. В классе контроллера %class% вызываемый метод %method% следующие аргументы не соответствуют заданным: %cells%
Описание ошибки указывает на то, что аргументы в методе контроллера, которые должны соответствовать динамическим значениям из адреса маршрута, им не соответствуют. Контроллеры в документации
HL26_ERROR Ошибка составления маршрутов. В классе контроллера %class% вызываемый метод %method% неправильно заданы аргументы
Более общая ошибка, сходная с предыдущей.
HL27_ERROR Ошибка составления маршрутов. Название %name% маршрута не должно повторяться
Ещё одна ошибка связанная с названием маршрута. Она указывает, что название не должно быть использовано в другом маршруте.
HL28_ERROR Ошибка составления маршрутов. У маршрута может быть только одно имя
Это узкоспециальная ошибка, возникающая при назначении маршруту двух или более методов name(). Может быть одно или не быть вообще.
HL29_ERROR Ошибка составления маршрутов. Вместе с контроллером page() должен быть метод name()
Чтобы правильно сопоставить страницы по именам необходимо выполнить это условие.
HL30_ERROR Ошибка составления маршрутов. В контроллере page()должен быть корректный тип
Тип для страниц должен существовать и должен быть указан правильно.
HL31_ERROR Ошибка составления маршрута page() или не подключена библиотека phphleb/adminpan
Для того, чтобы использовать назначаемые страницы необходима специальная библиотека.
HL32_ERROR Ошибка составления маршрутов. Часть %part% адреса %route% должна быть полностью динамической: /{...}/ или /{...?}/
Дополнительная проверка на корректность синтаксиса адреса для динамического маршрута.
HL33_ERROR Ошибка составления маршрутов. Неправильно установлен тег @, он может быть только в начале части маршрута
Специальный тег @ может быть расположен только в начале. Пример из документации:
Route::get('/profile/@{username}', 'Username with tag');
HL34_ERROR Метод protect() маршрута не может быть использован совместно с методом plain()
plain() выводит простой текст/страницу без использования сессий и поэтому не подходит для метода protect(), в котором они используются.
HL35_ERROR Ошибка автозагрузчика классов. Не удалось найти класс контроллера : %class%
Отдельная ошибка, которая возникает не при кешировании маршрутов, а в последующих запросах. Несмотря на то, что при кешировании контроллер присутствовал, сейчас фреймворк не может его обнаружить.
HL36_ERROR Ошибка составления маршрутов. Название модуля (%name%) должно состоять из из латинских букв в нижнем регистре, цифр, дефиса и символа \'/\' и иметь возможность быть преобразованным в название класса
Требования к названию модулей для правильного сопоставления классов в проекте.