Управляйте своими модулями как системой плагинов с помощью генератора плагинов.
композитору требуются tomatophp/filament-plugins
после установки пакета запустите эту команду
Плагины php artisan filament: установить
По умолчанию классы модулей не загружаются автоматически. Вы можете автоматически загружать свои модули, добавив плагин слияния в дополнительный раздел:
"extra": {"laravel": {"dont-discover": [] },"merge-plugin": {"include": ["Modules/*/composer.json"] } },
теперь вам нужно запустить эту команду для автозагрузки ваших модулей
дамп композитора-автозагрузка
наконец, зарегистрируйте плагин в /app/Providers/Filament/AdminPanelProvider.php
->плагин(TomatoPHPFilamentPluginsFilamentPluginsPlugin::make())
вы можете создать новый плагин, используя только команду
php artisan filament-plugins: сгенерировать
или вы можете использовать графический интерфейс для создания нового плагина. После создания плагина вам необходимо убедиться, что он загружен в композитор, выполнив эту команду
дамп композитора-автозагрузка
после создания плагина вы можете создать внутри него новую таблицу, а затем запустить генератор миграции, чтобы преобразовать ее в файл миграции, затем вы можете использовать графический интерфейс для создания ресурсов, страниц, виджета или модели, или вы можете легко использовать эти команды
php artisan filament-плагины: модель php artisan filament-plugins:ресурс php artisan filament-plugins: страница php artisan filament-plugins: виджет
он сгенерирует для вас файлы, и вы сможете использовать их напрямую. Обратите внимание, что вам необходимо сначала сгенерировать модель, а не использовать другие команды.
вы можете установить плагины с помощью командной строки, используя эту команду
PHP Artisan Filament: плагины
вы можете выбрать все, чтобы установить все плагины экосистемы TomatoPHP, или выбрать плагин, который хотите установить.
вы можете перечислить все плагины TomatoPHP с помощью этой команды
php artisan filament-plugins: список
вы можете включить свой пакет в список плагинов, добавив этот json-файл в корневую папку вашего пакета с именем module.json
и таким содержимым:
{"name": "FilamentAccounts","alias": "filament-accounts","description": {"ar": "полноценный менеджер учетных записей с API/уведомлениями/контактами для управления вашими контактами и учетными записями","en": «Полнофункциональный менеджер учетных записей с API/Уведомлениями/Контактами для управления вашими контактами и учетными записями», «gr»: «Полнофункциональный менеджер учетных записей с API/Уведомлениями/Контактами для управления вашими контактами и учетными записями», «sp»: «Полнофункциональный менеджер учетных записей с API /Notifications/Contacts для управления вашими контактами и учетными записями"},"keywords": [],"priority": 0,"providers": ["TomatoPHPFilamentAccountsFilamentAccountsServiceProvider"],"files": [],"title" : {"ar": "Учетные записи нитей","en": "Учетные записи нитей","gr": "Учетные записи нитей","sp": "Учетные записи нитей"},"color": "#007dff","icon ": "heroicon-c-user-circle","placeholder": "placeholder.webp","type": "lib","version": "v1.0","github" : "https://github .com/tomatophp/filament-accounts","docs": "https://github.com/tomatophp/filament-accounts"}
убедитесь, что вы разрешаете сканирование пакетов в файле конфигурации filament-plugins.php
'сканировать' => правда
теперь вы можете опубликовать свой пакет как модуль очень простым способом, используя эту команду
php artisan filament-plugins: опубликовать
и введите имя вашего пакета из списка, и он переместит его в папку вашего модуля и зарегистрирует для вас провайдера, так что вы можете настроить в пакете все, что захотите.
вы можете использовать выбранный модуль в своей панели, используя этот код в своем PanelProvider
->плагин(TomatoPHPFilamentPluginsFilamentPluginsPlugin::make()->modules(['CRM']))
поэтому вы увидите только выбранные модули на вашей панели
в любом плагине вы можете создать страницу/ресурс/виджет для выбранной панели, поэтому, если вам нужно отображать только текущую страницу/ресурсы/виджеты панели, вы можете использовать этот код в своем PanelProvider
->plugin(TomatoPHPFilamentPluginsFilamentPluginsPlugin::make()->discoverCurrentPanelOnly())
вы можете остановить автоматическую загрузку ресурсов модуля, используя этот код в вашем PanelProvider
->плагин(TomatoPHPFilamentPluginsFilamentPluginsPlugin::make()->autoDiscoverModules(false))
вы можете прекратить использование пользовательского интерфейса плагинов, используя этот код в вашем PanelProvider
->плагин(TomatoPHPFilamentPluginsFilamentPluginsPlugin::make()->useUI(false))
вы можете опубликовать файл конфигурации с помощью этой команды
поставщик PHP Artisan:publish --tag="filament-plugins-config"
вы можете опубликовать файл представлений с помощью этой команды
поставщик PHP Artisan:publish --tag="filament-plugins-views"
вы можете опубликовать языковой файл с помощью этой команды
Поставщик PHP Artisan:publish --tag="filament-plugins-lang"
вы можете опубликовать файл миграции с помощью этой команды
поставщик PHP Artisan:publish --tag="filament-plugins-migrations"
Ознакомьтесь с нашим удивительным TomatoPHP