При проектуванні, часто доводиться стикатися з питанням: яке саме рішення використовувати в якості адмін-панелі, при розробці під 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 адмінку з GitHub і інструкція по установці

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

Якщо є бажання налаштувати все самостійно, за посиланням вище пропонуємо покрокову інструкцію, з мінімумом зайвого тексту і масою коду.

Сергій Рибалко, розробник Evergreen

Сергій Рибалко

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