Към съдържанието
PN Scripts

Отворен код

Filament или собствен административен панел: как да изберете в Laravel

  • PN Scripts Team
  • 7 мин четене

Laravel екип трябва да избере Filament, когато администрацията се състои основно от списъци, форми, филтри и действия върху записи, а я използват служители, които могат да свикнат със стандартен административен интерфейс. Собствен административен панел си струва, когато основната работа е процес, който не пасва на шаблоните на Filament, когато потребителите имат нужда от интерфейс, изграден около ежедневните им задачи, или когато самият панел е продукт, който продавате. Много проекти са по средата: Filament за повечето екрани и собствени страници там, където стандартните шаблони не стигат.

По-долу са критериите и въпросите, които да си зададете, преди да решите.

#Какво дава Filament на един Laravel екип

Filament е рамка за административни панели върху Laravel, изградена с Livewire. Описвате ресурс за Eloquent модел със схема на формата и схема на таблицата, а Filament генерира екраните за списък, създаване, редакция и преглед. Таблиците идват със сортиране, търсене, филтри, страниране, действия за отделен ред и масови действия. Формите имат валидация, полета за релации, качване на файлове и условни полета. Достъпът следва авторизацията на самия Laravel, така че политиките, които вече пишете за модела, решават кой може да вижда, създава, редактира или трие.

На практика това означава скорост. Дузина CRUD екрана, които иначе се изграждат и тестват седмици наред, заработват много по-рано и се държат еднакво, защото стъпват на една рамка. Еднаквостта помага и на служителите: който е научил един списък и една форма, знае как работи и останалото.

#Кога Filament е правилният избор

Filament пасва най-добре, когато повечето от тези твърдения са верни:

  • Работата е предимно CRUD върху данни. Служителите създават, търсят, редактират и одобряват записи: продукти, поръчки, статии, клиенти, резервации, запитвания.
  • Екипът ви вече пише Laravel. Кодът на Filament е PHP до моделите и политиките ви, така че няма втори стек за потребителския интерфейс, за който да търсите хора и да поддържате.
  • Правата следват моделите и действията. „Редакторите публикуват статии, само администраторите трият потребители“ е точно правилото, което политиките на Laravel и пакет за роли покриват добре.
  • Потребителите са вътрешни. Служителите приемат стандартен административен интерфейс, стига да е ясен и бърз. Рядко им трябва уникален дизайн.
  • Искате администрацията да е готова рано. Работещ административен панел още в първия етап позволява на клиента да въвежда реално съдържание, докато публичната част се изгражда.

#Кога собственият административен панел се оправдава

Filament става неподходяща основа, когато администрацията престане да бъде набор от екрани върху таблици. Ето признаците:

  • Основната задача е процес. Диспечер, който планира маршрути на карта, продуцент, който подрежда график по времева линия, или складов работник, който сканира артикули един след друг, не мислят в „списък и после форма“. Ако вкарате тази работа в ресурси, хората ще се борят с интерфейса.
  • Служители без технически опит имат нужда от водене стъпка по стъпка. Ако допускат грешки, които обща форма не може да предотврати, екран, изграден около задачата им, с по-малко избор и ясни стъпки, се изплаща.
  • Много работа в реално време или без връзка. Съвместна редакция на живо, сложно влачене и пускане или работа офлайн водят към JavaScript интерфейс със собствено състояние.
  • Панелът е част от продукта. Ако клиентите ви влизат в него, той носи вашата марка и вашите решения за потребителското изживяване и вероятно ще има нужда от собствена дизайн система.
  • Екипът ви е по-силен в React или Vue, отколкото в Livewire. Панел, който екипът не може уверено да разширява, се превръща в пречка.

Собствен административен панел в Laravel обикновено означава Inertia с React или Vue или Blade със собствени компоненти. Печелите пълен контрол върху всеки екран. Поемате обаче и всичко, което Filament правеше вместо вас: таблици, филтри, показване на грешки от валидацията, работа с файлове, проверки на правата в интерфейса и тестовете за всичко това.

#Сравнение по критериите, които имат значение

КритерийFilamentСобствен панел
Време до първите работещи екраниКратко, особено за CRUDПо-дълго, всеки екран се изгражда
Списъци и форми с много данниСилна страна още от началотоИзграждат се и се тестват от екипа
Права за достъпПолитики на Laravel и пакет за роли при нуждаСъщите правила в сървърната част, проверките в интерфейса се пишат ръчно
Специфични процесиСобствени страници и Livewire компоненти в рамките на оформлениетоБез ограничения освен вашия дизайн
Удобство за нетехнически служителиПоследователен и лесен за усвояване, но общМоже да се оформи около всяка задача
ОбновяванеСледвате основните версии на Filament заедно с тези на LaravelВсяка зависимост и всяко обновяване са ваши

Права за достъп

Какъвто и път да изберете, дръжте авторизацията в сървърната част. В Laravel това са политики и gates, често с пакет за роли и права като Spatie Permission. Filament чете тези политики, за да скрива или блокира действия. Собственият панел трябва да използва същите политики, а API адресите зад него също трябва да ги прилагат, защото скрит бутон не е защита. Пишете автоматични тестове, които влизат с всяка роля и опитват действията, забранени за нея.

Обновяване

Основните версии на Filament са въвеждали несъвместими промени и всяко такова обновяване е работа, която се планира, тества и насрочва. Собственият панел няма версия на рамка, която да следва, но JavaScript зависимостите, инструментите за компилиране и UI библиотеките му остаряват по същия начин, а за код, който сте написали сами, никой не публикува ръководство за обновяване. Преди да изберете, преценете колко често ще се налага обновяване, кой ще го прави и дали избраната версия на Filament поддържа вашата версия на Laravel. Ако наследявате панел, изграден от друг екип, в статията как да поемете код, написан от друг екип ще видите как да го прегледате, преди да го променяте.

#Въпроси, на които да отговорите преди избора

  1. Избройте десетте екрана, които служителите ще ползват най-често. Колко от тях са таблица и форма?
  2. Кой ползва панела: обучени служители, редактори от време на време или плащащи клиенти?
  3. Какви действия са нужни на всяка роля и кои трябва да ѝ бъдат забранени?
  4. Има ли задача, която изисква карта, календар, табло или воден процес в няколко стъпки?
  5. Кой стек за потребителския интерфейс познава екипът, който ще поддържа системата?
  6. Как и от кого ще се обновява панелът през следващите години?

Ако повечето отговори сочат към таблици и форми за обучени служители, започнете с Filament и добавете собствени страници, където е нужно. Ако ключовите екрани са процеси или панелът е за клиенти, планирайте собствен интерфейс и го заложете в писменото задание. Административният панел е един от факторите, описани в статията колко струва изработката на уеб приложение.

#Пример от практиката: PN Press

PN Press е open source CMS за блог и съдържание от PN Scripts, изградена с Laravel 13 и Filament 5 и публикувана в GitHub под лиценз MIT. Тя показва Filament страната на избора в малък мащаб:

  • Статиите и категориите са ресурси на Filament на адрес /admin. Заглавие, URL адрес, кратко описание, текст, статус, дата на публикуване и основно изображение са на един екран.
  • Достъпът минава през Spatie Permission. Само потребители с роля администратор или редактор могат да отворят панела, така че самият профил не е достатъчен.
  • Публичните страници на блога са Blade шаблони, генерирани на сървъра, със стилове на Tailwind CSS, отделени от администрацията, и показват само публикувани статии.
  • PHPUnit тестове покриват публичните страници и достъпа до администрацията.

Управлението на съдържание пасва добре на Filament, защото работата на редактора е точно списъци и форми. Публичният сайт, където дизайнът е важен за читателите, остава собствена разработка.

#Как може да помогне PN Scripts

PN Scripts изработва Laravel приложения както с административни панели на Filament, така и със собствен интерфейс за администрацията, според нуждите на проекта. Ако искате да видите работеща конфигурация на Filament с роли и чернови, преди да решите, PN Press е безплатна за клониране и разглеждане.

Още по темата

Още по темата

Коментари

Коментари

Напишете първия коментар.

Оставете коментар

Следваща стъпка

pnscripts.com/bg/contact

Пишете на екипа

Попитайте за статия или ни разкажете за проект, който искате да изградим. Отговаряме до един работен ден.

Пишете ни

Семейството PN Scripts

Другите сайтове на PN Scripts

Хостингът, игрите и блогът имат свои сайтове, поддържани от същата компания.

  • pnscripts.com

    PN Scripts

    Софтуерно инженерство

    Разработка на уеб и мобилни приложения, API и игри по поръчка, плюс нашите open-source продукти и плъгини.

  • games.pnscripts.com

    Игри

    Игри и игрови сървъри

    Мястото за игрите и игровите сървъри на PN Scripts. Каталогът засега е празен и ще се попълва, когато игрите и сървърите стартират.

  • hosting.pnscripts.com

    Хостинг

    Хостинг и инфраструктура

    Споделен хостинг, KVM VPS, dedicated сървъри и домейни от същата компания, която изработва проекта ви.

  • blog.pnscripts.com

    Блог

    Статии и бележки

    Ясни статии за хостинг, сървъри, домейни и сигурност, писани от хората, които работят с тях.

    Вие сте тук