Laravel предоставляет обширный набор инструментов для разработки административных панелей. Разработчик может использовать готовые решения или создать собственную панель с нуля, используя встроенные возможности фреймворка. Каждый подход имеет свои плюсы и минусы.
Индивидуальная разработка админки под конкретный проект требует большого вложения средств, так как помимо бэкенд-разработчиков нужно привлекать целую команду: UX, фронтенд, тестирование и т.д. Поэтому, если приложение не требует какого-то уникального функционала, эффективнее всего использовать готовую панель администрирования.
Проблема лишь в том, что для Laravel уже разработано более 20 вариантов готовых решений, а нужно выбрать одно из них. В этой статье мы рассмотрим самые востребованные варианты, а также выделим их особенности.
Типы административных панелей для Laravel
Прежде чем углубиться, давайте кратко рассмотрим, чем отличаются внутренние CRUD-интерфейсы от визуальных конструкторов.
Визуальные конструкторы
Визуальные конструкторы пользовательского интерфейса позволяют управлять данными непосредственно из графического интерфейса, с использованием функции перетаскивания. Они напоминают CMS-системы, но обычно предлагают больше возможностей, чем добавление и обновление контента.
Визуальные конструкторы полезны, когда команда небольшая и нет разработчиков, которые могут управлять внутренними инструментами. Однако стоит иметь в виду, что сборщики без кода обычно имеют ограниченные возможности настройки.
Примерами визуальных сборщиков для админки Laravel являются Voyager и Backpack DevTools.
CRUD-интерфейсы
CRUD-операции — это основа для работы с базами данных. Они отвечают за создание, чтение, обновление и удаление данных (Create, Read, Update, Delete). Пользователь, который редактирует элемент в системе, добавляет новый или удаляет ненужные данные, выполняет одну из операций CRUD.
Поскольку инфраструктура Laravel следует шаблону MVC (Model-View-Controller), то самым популярным методом архитектуры для пакетов панели администратора являются предоставление интерфейсов CRUD. Это наборы представлений, контроллеров, которые автоматически добавляют логику для управления БД и пользовательский интерфейс к существующим моделям.
Недостатком этой модульной архитектуры состоит в том, что если требования отклоняются от стандартного CRUD — например, необходимо прописать сложные отношения между моделями — то это может доставить проблем при разработке.
Интерфейс CRUD можно создать с нуля, но есть много готовых решений. К ним относятся Laravel Nova, Filament, Orchid, Backpack, Quick Admin Panel.
Самые популярные админки для Laravel
Laravel Nova
Официальная панель администратора от разработчиков Laravel. Архитектура Nova представляет собой интерфейс CRUD , позволяющий пользователям управлять своими записями базы данных прямо из пользовательского интерфейса с небольшой настройкой.
Nova предоставляет настраиваемые функции, такие как поиск, фильтрация. Как правило, они готовы к работе с существующими моделями, но также могут быть настроены для внешнего и внутреннего интерфейсов (Nova использует Vue.js для внешних компонентов).
Особенности
Механизм, с помощью которого операции CRUD добавляются в модель Nova, называется ресурсами . Это классы, похожие на контроллеры, которые создаются в командной строке.
Еще одной примечательной особенностью Nova являются действия. Они позволяют выполнять пользовательские задачи на одной или нескольких моделях. Например, можно написать действие, которое продлит членскую подписку пользователя на месяц.
Плюсы
- Официальный продукт от команды Laravel;
- Небольшой объем конфигурации, обеспечивающий быструю интеграцию с существующими проектами Laravel;
- Чистый, красивый интерфейс, позволяющий пользователям быстро и легко управлять своими данными;
- Гибкие возможности управления правами доступа для пользователей, включая различные роли, разрешения, которые могут быть настроены для каждого ресурса;
- Поддержка различных типов полей, включая текстовые поля, даты, файлы, изображения и многое другое. Кроме того, есть возможность создавать свои собственные типы полей.
Минусы
- Лицензия платная, для пользователей из РФ могут возникнуть проблемы с ее оплатой. Стоимость лицензии: 99 долларов для одного проекта или неограниченный пакет за 299 долларов;
- Не является low-code решением. Использовать Nova для создания внутренних инструментов быстрее, чем разрабатывать с нуля, но, тем не менее, нужны знания Laravel и PHP.
В целом, Nova предоставляет множество функций и возможностей, которые делают ее отличным выбором для создания административной панели. Она предоставляет удобный, интуитивно понятный интерфейс для управления данными, гибкие возможности настройки и управления правами доступа, а также поддержку для различных типов полей, API.
Voyager
В отличие от других панелей администратора, Voyager — это визуальный конструктор для приложения, позволяющий добавлять или редактировать элементы из пользовательского интерфейса, а не через код.
Voyager имеет несколько основных функций:
- Медиа-менеджер, аналогичный тому, что мы знаем из WordPress;
- Конструктор меню, позволяющий добавлять, редактировать или удалять элементы меню;
- Диспетчер базы данных (альтернатива Laravel Schema);
- Построитель BREAD/CRUD, который позволяет просматривать, читать, редактировать, добавлять, удалять записи и представления любой таблицы в БД.
Особенности
Одна из основных особенностей Laravel Voyager — интуитивно понятный пользовательский интерфейс, который делает его очень простым в использовании. Он обладает большим количеством функций, таких как управление правами доступа, обработка изображений, редактирование баз данных и многое другое.
Laravel Voyager также поддерживает различные плагины и расширения, которые позволяют расширить его функциональность, а также интегрировать его с другими инструментами и сервисами. Например, можно добавить поддержку социальных сетей, интеграцию с Google Analytics или создать свои собственные плагины для управления специфическим типом контента.
А открытый исходный код Laravel Voyager дает возможность разработчикам настраивать его под свои потребности, добавлять собственный функционал. Благодаря этому в сообществе он стал одним из самых популярных инструментов для управления содержимым приложений на Laravel.
Плюсы
- Редактированием элементов управления может заниматься человек, не имеющий знаний по программированию;
- Есть бесплатные обучающие видеокурсы;
- Может легко расширять и переопределять контроллеры по умолчанию;
- Открытый исходный код.
Минусы
- Пользовательский интерфейс упрощает управление, но ограничивает возможности по сравнению с редактированием через код;
- Не подходит для сложных приложений, требующих настройки разрешений на основе ролей, рабочих процессов и других менее типичных функций.
Orchid
Orchid — это инструмент для разработки административных интерфейсов веб-приложений на основе Laravel, созданный российским разработчиком Александром Черняевым. Он предоставляет разработчикам возможность быстро создавать функциональные интерфейсы, которые могут использоваться для управления данными и ресурсами приложения.
Laravel Orchid имеет обширную библиотеку компонентов, которые позволяют быстро создавать формы, таблицы, графики, дашборды и многое другое. Он также предоставляет ряд инструментов для управления пользователями, ролями, разрешениями доступа к ресурсам.
Особенности
В отличие от Nova, Orchid требует создания логики и внешнего вида админ-панелей через классы, называемые экранами. Каждый экран будет определять интерфейс для конкретной модели. Данные можно получать из любого источника, включая модель Eloquent, а также внешние API.
Хотя Orchid требует немного больше ручной работы, чем с Nova, экраны чрезвычайно гибкие, их легко повторять и настраивать.
Плюсы
- Бесплатное решение с открытым исходным кодом;
- Легко настраивается;
- Отличное сообщество и поддержка на GitHub от автора;
- Частые обновления.
Минусы
- Не имеет готовых преднастроек, как у Nova — нужно написать код, чтобы начать работу;
- Документация не особо подробная.
Backpack
Backpack — еще одно популярное решение для создания админ-панели Laravel. Для его настройки требуется минимальный набор технологий: Laravel, Bootstrap, jQuery. Кроме того, можно использовать Vue, React, Webpack, Mix, Less, Sass, NPM и другие инструменты.
Backpack имеет два основных пакета: Backpack\CRUD, который ускоряет создание интерфейсов CRUD, Backpack\Base, отвечающий за вход в систему, сброс пароля, страницы ошибок и т.д.
Backpack модульный и легко расширяется, что делает его мощным решением, в том числе для сложных приложений.
Особенности
Подобно Nova и Orchid, базовый пакет Backpack предоставляет интерфейс CRUD для моделей приложения (называемый CRUDS). Это разделы панели администратора, поведение которых определяется методами и трейтами, которые добавляются к стандартным классам Laravel.
Также Backpack включает в себя платный инструмент под названием Backpack DevTools , который предоставляет веб-интерфейс для быстрого создания и редактирования элементов, наподобие того, как это делает Voyager.
Плюсы
- Предоставляет разработчикам множество возможностей настроек, гораздо больше по сравнению с Nova;
- Понятная и подробная документация, включающая в себя видеоуроки;
- Удобный, приятный интерфейс;
- Бесплатный вариант для некоммерческих проектов.
Минусы
- Для коммерческих проектов лицензия платная, но есть сложности с оплатой из РФ. К тому же, решение довольно дорогое, если нужны все инструменты и опции. Стоимость лицензии начинается от 69 долларов за 1 проект до 599 долларов за полный пакет;
- Его возможности настройки — это палка о двух концах, поскольку каждое изменение требует довольно много ручного кодирования.
Выводы
Laravel позволяет создавать административные панели разными способами. Помимо рассмотренных инструментов сообщество разработало и другие эффективные решения: Admin Architect, Filament, Argon, Quick Admin Panel, InfyOm Laravel Generator, LaraAdmin. Каждый из этих инструментов предлагает свой подход к построению админ-панелей.
У каждого инструмента есть свои сильные и слабые стороны. Выбор подходящего решения определяется спецификой проекта и компетенциями команды разработчиков. Чтобы принять верное решение, необходимо ответить на следующие вопросы:
- Достаточно ли у вас ресурсов в разработке, продукте, UX и дизайне, чтобы создать панель администратора Laravel с нуля?
- Вы хотите, чтобы не технические специалисты самостоятельно, могли управлять админ-панелью?
- Планируете ли вы разработать минимальный рабочий продукт (MVP) или вам нужно масштабируемое решение для тысяч пользователей?
Наша команда Work Solutions готова помочь в выборе и разработке оптимальной административной панели для вашего проекта.