При проектировании, часто приходится сталкиваться с вопросом: какое именно решение использовать в качестве админ-панели, при разработке под Laravel. Рассмотрев разнообразные варианты, мы остановили свой выбор на SleepingOwlAdmin 4-ой версии и добавили к ней управление пользователями, ролями и правами через пакет Sentinel. А также добавили регистрацию и авторизацию через Facebook, Google+, VKontakte и реализовали заготовку под REST/RESTful API с помощью пакета Dingo.

История и возможности системы

Когда мы начали использовать Laravel в разработке, вопрос CRUD-генератора для самых простых интерфейсов встал очень остро. Разрабатывать свою админ-панель с нуля не хотели принципиально и сделали исследование возможностей существующих пакетов для Laravel.

В наш short-list вышли две системы - Sleeping Owl и Frozennode, которые сравнивались по 15 критериям.

Требование/критерий Frozennode Комментарий Sleeping Owl Комментарий
1. Быстрое создание CRUD-сущностей - чтобы создание нового объекта и интерфейса администрирования под него не занимало больше чем 20 минут Отлично Хорошо
2. Поддержка связанных объектов: т.е. если у нас есть в объявлении поле Город чтобы можно было выбрать в админке город а не числовой id-шник Отлично Отлично
3. Возможность добавит фильтры/фильтры из коробки на странице реестра Отлично Очень простое добавление фильтров реестра из коробки Отлично Выглядит так
4. Очень желательно: инлайн-редактирование прямо в реестре (но не в ущерб простоте кастомизации) Плохо не реализовано Плохо не реализовано
5. Пагинация на страницах реестра Отлично Выглядит так  Отлично Выглядит так
6. Возможность кастомизировать страницы реестра кодом просто (скрывать/удалять стобцы, делать кастомное отображение полей) Хорошо В рамках коробки все приемлемо Отлично Тут явно больше возможностей для кастомизации
7. Очень желательно: редактирование одной записи не попапом/сайдбаром а отдельной страницей (может быть много полей, в попапе будет куцо) Хорошо Нужно допиливать верстку показывая форму из сайдбара во всю ширину экрана. Страница отдельная Отлично
8. Очень желательно: возможность локализации админки на русский (быстро) или русский в комплекте Отлично Поддерживается порядка 20-ти языков интерфейса Отлично Поддерживается ru и en
9. Возможность настроить админку на уже созданные таблицы/модели (т.е. создали модель, в админке прописали что нам надо, и она "подхватила" записи, не требуя модификации их под себя) Отлично Отлично
10. Отдельная авторизация для пользователей админки Удовлетворительно Использует родную авторизацию Laravel Отлично Пользователи админки - отдельная сущность в системе, хранятся в отдельной таблице
11. Очень желательно: распределение прав доступа по ролям (CRUD) пользовтелей админки Хорошо Нет встроенной системы авторизации, использует авторизацию уровня фреймворка Отлично Есть возможнось тонкой настройки ролей и прав, но это не коробка - нужно писать код и разбираться
12. Поддержка текущей стабильной версии фреймворка Laravel Отлично Отлично
13. Простота использования/скорость добавления новых элементов Отлично Хорошо Сложнее, но больше возможностей для кастомизации
14. Внешний вид Хорошо Отлично
15. Популярность, количество скачиваний и рейтинг Отлично Хорошо

В итоге мы останавлись на Sleeping Owl как на более перспективном варианте. Опробовав её на нескольких проектах, добавили к ней управление пользователями, ролями и правами через пакет Sentinel и регистрацию и авторизацию через Facebook, Google+, VKontakte.

Столкнувшись позже с задачей разработки серверного backend под мобильные приложения реализовали заготовку под REST/RESTful API с помощью пакета Dingo.

Загрузить Laravel сборку Sleeping Owl + Sentinel + Dingo с GitHub и инструкция по установке

Код сборки на GitHub: https://github.com/evergreen-it-dev/laravel5.3_sowl4_sentinel_dingo

Если есть желание настроить всё самостоятельно, там же предлагаем пошаговую инструкцию, с минимумом лишнего текста и массой кода.

Сергей Рыбалко, разработчик Evergreen

Сергей Рыбалко

10.01.2017
Рейтинг: 0 / 5 (0)