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 поможет вам с подбором и разработкой административной панели для вашего проекта.