Всем доброго дня!
В этой небольшой статье расскажу как пришел к применению MoonShine в качестве админ-панели. Работаю бэкэнд разработчиком в офисе. Основные инструменты - PHP, Laravel и CMS Битрикс.
Краткое ТЗ
Нужна админка для сайта коммерческого проекта. Основные задачи на первый этап - управление пользователями и контрактами (с возможностью пополнения и списания услуг), генерация актов на основе списанных услуг. Остальное уже коммерческая тайна.
Выбор MoonShine
Изначально, проект должен был быть интегрирован с CMS Битрикс, так как почти все наши проекты в студии были на нём. Но, так как проект был не очень срочный, и конкретных сроков не было, то я предложил поэкспериментировать с другими фреймворками и выбор пал на Laravel. Затем, задача была найти подходящую и, самое главное, не сложную в реализации админ-панель. Так как, на тот момент с Laravel я был знаком около полугода и не имел дела с админками (только с устаревшей версией OctoberCMS).
Принялся искать варианты. Основные критерии для поиска:
- бесплатно
- широкие возможности по кастомизации
И, почти сразу я наткнулся на MoonShine. На тот момент была ещё версия 1, но и её коробочная версия почти покрывала мои потребности. Особенно подкупили инструкции в формате видео на русском языке.
Сложности при реализации
Так как опыт работы с Laravel, был небольшой, то разработка была медленной - параллельно изучал сам фреймворк. Очень порадовало, что по MoonShine есть русскоязычное сообщество в Telegram, где оперативно отвечают на вопросы, даже если они очевидные. Поэтому большинство вопросов связанных с админкой быстро решались в чате сообщества.
В скором времени вышла вторая версия MoonShine и я сразу же переехал на неё, хоть она и была ещё сырой.
Кастомные решения
Мне нужно было сделать отображение списания услуг по периодам:
Изначально, компонент Collapse
по умолчанию запоминал состояние открыт/закрыт, а мне нужно было чтобы текущий период был открыт всегда, а остальные были закрыты.
И тогда я решил залезть под капот и доработать этот функционал - был "изобретён" метод persist
, который определял, нужно запоминать состояние или нет. Так я сделал первый PR в MoonShine, который был одобрен и добавлен в релиз.
Общий вывод
На данный момент, приобрел хороший опыт как по работе с Laravel, так и по работе с админкой. Продолжаю прокачивать свой проект и вношу вклад в MoonShine. Благодаря тому, что стал контрибьютить в MoonShine неплохо прокачал скилл.
MoonShine полностью устраивает, буду настаивать чтобы все новые проекты в студии делались на MoonShine =)