Как создавать и работать с плагинами в Filament Laravel
Инструкция по работе с плагинами в Filament Laravel

Laravel Filament Core Concepts - Plugins



Краткий обзор

Хотя Filament содержит практически все инструменты, необходимые для создания отличных приложений, иногда возникают потребности в добавлении собственной функциональности либо только для своего приложения, либо в виде распространения пакетов, которые другие разработчики могут включать в свои приложения. Именно поэтому Filament предлагает систему плагинов, которая позволяет расширять его функциональность.

Прежде чем перейти к рассмотрению, важно понять, в каких контекстах могут использоваться плагины. Существует два основных контекста:

  1. Плагины для панелей Filament: Это плагины, которые используются в конструкторах панелей Filament. Обычно они используются только для добавления функциональности при использовании внутри панели или как полноценная панель сама по себе. Примерами могут быть:
    1. Плагин, добавляющий определенную функциональность в набор инструментов в виде виджетов.
    2. Плагин, который добавляет набор ресурсов и/или функциональность в приложение, например, блог или функцию управления пользователями.
  2. Отдельные плагины Filament: Это плагины, которые используются в любом контексте вне Panel Builder. Примерами могут быть:
    1. Плагин, добавляющий пользовательские поля для использования в конструкторах форм Filament.
    2. Плагин, добавляющий пользовательские поля или фильтры в конструктор таблиц Filament.

Хотя это два разных понятия, о которых следует помнить при создании плагинов, они могут использоваться вместе в одном плагине. Они не обязательно должны быть взаимоисключающими.

Важные понятия

Прежде чем перейти к рассмотрению особенностей создания плагинов для Filament, важно понять несколько важных вещей. Перед созданием плагина необходимо ознакомиться со следующими понятиями:

  1. Разработка пакетов Laravel
  2. Инструменты для создания пакетов Spatie
  3. Управление активами Filament

Объект Plugin

В Filament версии 3 появилось понятие объекта Plugin, который используется для настройки плагина. Этот объект представляет собой простой PHP-класс, который расширяет класс Filament\Support\Plugin. Этот класс используется для настройки плагина и является основной точкой входа для плагина. Он также используется для регистрации Resources и Icons, которые могут быть использованы плагином.

Хотя объект плагина очень полезен, он не является обязательным для создания плагина. Можно создавать плагины и без использования объекта плагина, как показано в руководстве "Создание плагина панели".

Информация:
Объект Plugin используется только для Panel Providers. Самостодостаточные плагины не используют этот объект. Все настройки для таких автономных плагинов должны выполняться в сервис-провайдере плагина.

Регистрация активов

Вся регистрация активов, включая CSS, JavaScript и Alpine Components, должна осуществляться через service provider плагина в методе packageBooted(). Это позволит Filament зарегистрировать активы в Asset Manager и загрузить их при необходимости.

Создание плагина

Конечно, можно создавать плагины с нуля, но для быстрого начала работы рекомендуется использовать Filament Plugin Skeleton. Этот каркас включает в себя все необходимые шаблоны, которые помогут быстрее приступить к работе.

Использование шаблона для создания плагина Filament

Чтобы использовать этот шаблон, просто перейдите в репозиторий GitHub и нажмите кнопку "Использовать этот шаблон" (Use this template). В результате в вашем аккаунте будет создано новый репозиторий с кодом этого шаблона. После этого можно клонировать это репозиторий на свою машину. Как только код окажется на вашей машине, перейдите в корень проекта и выполните следующую команду:

php ./configure.php

Она задаст несколько вопросов для настройки плагина. После того как вы ответите на все вопросы, скрипт создаст для вас новый плагин, и вы сможете приступить к созданию нового удивительного расширения для Filament.

Обновление существующих плагинов

Поскольку каждый плагин сильно различается по объему использования и функциональности, не существует универсального подхода к обновлению существующих плагинов. Однако следует отметить одну вещь, которая касается всех плагинов, - это устаревание PluginServiceProvider.

В вашем сервис-провайдере плагинов необходимо изменить его, чтобы вместо него расширить PackageServiceProvider. Также необходимо добавить статическое свойство $name в сервис-провайдер. Это свойство используется для регистрации плагина в Filament. Вот пример того, как может выглядеть сервис-провайдер:

class MyPluginServiceProvider extends PackageServiceProvider
{
    public static string $name = 'my-plugin';
 
    public function configurePackage(Package $package): void
    {
        $package->name(static::$name);
    }
}

Пожалуйста, прочитайте эти инструкции полностью, прежде чем обновлять свой плагин. Это поможет понять концепции и способы создания плагина.

  1. Управление активами Filament
  2. Разработка плагина для панели Filament
  3. Управление иконками в Filament
  4. Управление цветами в Filament
  5. Настройка стилей в Filament

 

Перевод с английского официальной документации Filament:
https://filamentphp.com/docs/3.x/forms/fields/rich-editor

Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)

Старт! Горячий старт на просторы интернета
Старт! Горячий старт на просторы интернета
Старт! Меню