Возможности FilamentPHP

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

Что такое FilamentPHP?

Домашняя страница FilamentPHP

FilamentPHP — это полнофункциональный инструмент веб-разработки, также называемый TALLkit, поскольку он объединяет четырех всадников TALLStack (Tailwind, Alpine.js, Laravel, Livewire).

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

В текущей версии Filament (v3.2) вы можете использовать 8 модулей: Panel Builder, Form Builder, Table Builder, Notifications, Actions, Widgets, Infolist Builder и Core Concepts, каждый из которых имеет свои соответствующие функции.

Каковы преимущества использования FilamentPHP?

Легкость: используя FilamentPHP, вы видите, как несколько строк кода становятся одной. Вы можете легко реализовать такие функции, как фильтры и поля поиска, за считанные секунды. Всего одна команда, и Filament может собрать вашу форму, готовую к тому, чтобы вы могли придать ей любую форму.

Развязка: модули Filament также можно использовать независимо, без необходимости устанавливать всю их экосистему. Итак, если вы хотите использовать только Form Builder или Table Builder, вы можете установить их без необходимости устанавливать все остальное.

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

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

Open-source: Да, на Github вы можете клонировать репозиторий Filament и внести свой вклад. В самом файле readme проекта вы найдете инструкции по запуску проекта на вашем компьютере.

Free: Мы не можем забыть самое лучшее, верно? FilamentPHP полностью бесплатен.

Что нужно для использования FilamentPHP?

Чтобы использовать FilamentPHP, вам необходимо соответствовать следующим требованиям:

  • PHP 8.1+
  • Laravel v10.0+
  • Livewire v3.0+
Эти требования применимы к FilamentPHP v3.2. Вы можете ознакомиться с требованиями для других версий, посетив вкладку «Установка» в документации. Рекомендуется использовать самую последнюю версию, поскольку она включает гораздо больше функций, чем предыдущие, и еще более упрощена, однако, если вы выберете более раннюю версию, имейте в виду, что некоторые функции могут отсутствовать или быть недоступными. изменился способ их работы.

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

Установка Filament

Чтобы установить FilamentPHP в вашем проекте Laravel, выполните следующую команду:

composer require filament/filament:"^3.2" -W 

После этого выполните следующую команду. Это установит Панель:

php artisan filament:install --panels

И, наконец, чтобы создать пользователя панели, используйте команду:

php artisan make:filament-user

И все, теперь вы можете получить доступ к своей панели Filament, просто откройте ее php artisan serve, получите доступ к URL-адресу localhost:8000/admin и войдите в систему, используя адрес электронной почты и пароль созданного вами пользователя.

Демонстрация использования FilamentPHP на практике

Чтобы создать этот ресурс, я выполняю следующие шаги:

Во-первых, перед созданием ресурса вам понадобится всего 3 вещи

  • Ваша таблица в базе данных проекта Laravel должна быть создана.
  • В вашей модели ваша переменная $fillableдолжна содержать все поля в вашей таблице.
  • И, очевидно, в вашем проекте должен быть установлен FilamentPHP. (Пошагово в предыдущей теме).

Вы можете легко сделать это следующим образом:

Используйте команду ниже, указав имя нужной модели (в данном случае имя моей модели — «Продукт») с флагом, -mчтобы миграция уже была создана вместе:

php artisan make:model Product -m

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

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
    /**
    * Run the migrations.
    */
    public function up(): void 
    {
        Schema::create('products', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->longText('description');
            $table->decimal('price', 8, 2);
            $table->timestamps();
        });
    }

    /**
    * Reverse the migrations.
    */
    public function down(): void 
    {
        Schema::dropIfExists('products');
    }
};

После добавления полей запустите одно из них, php artisan migrate чтобы создать таблицу в вашей базе данных.

После создания таблицы объявите поля вашей таблицы в переменной $fillable внутри вашей модели, как показано в примере ниже:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Product extends Model
{
    use HasFactory;

    protected $fillable = [
        'name',
        'description',
        'price',

    ];
}

И все, теперь просто бегите за обнимашками! Чтобы создать свой ресурс, вам понадобится всего лишь следующая команда (где Product указано название вашей модели):

php artisan make:filament-resource Product --generate --view

// A flag --generate vai gerar seu formulário
// A flag --view vai criar a página de visualização
// Você pode ainda utilizar a flag --simple para que sua 
// resource seja baseada em modais, isso tudo ta explicado 
// direitinho na documentação

Заключение

Вы можете ознакомиться с возможностями FilamentPHP, посетив демо-версию , которая на практике показывает пример того, как компоненты можно использовать и организовывать на экране в вашем проекте.