DEV Community

Cover image for O poder do FilamentPHP
Adryanne Kelly
Adryanne Kelly

Posted on • Edited on

O poder do FilamentPHP

Neste artigo vou apresentar uma ferramenta poderosa, incrivelmente fรกcil de usar e como ela pode deixar seu desenvolvimento web muito mais rรกpido e eficiente com apenas alguns comandos. Com ela, vocรช consegue montar seu projeto completo, com uma interface linda e intuitiva dentro de pouquรญssimo tempo. Vamos lรก?
ย 

Tรณpicos

ย 

O que รฉ o FilamentPHP?

Pรกgina principal do FilamentPHP

O FilamentPHP รฉ uma ferramenta para desenvolvimento web full-stack, tambรฉm chamada de TALLkit, pois reรบne os 4 cavaleiros da TALLStack (Tailwind, Alpine.js, Laravel, Livewire).

Com uma documentaรงรฃo rica e clara, usar os recursos do Filament nรฃo tem nenhum segredo, vocรช consegue implementar cada um deles no seu projeto sem muito esforรงo, sendo assim, um grande aliado da produtividade, tudo isso com uma interface bonita e intuitiva que vocรช pode moldar da forma como preferir.

O Filament na versรฃo atual (v3.2) conta com 8 mรณdulos pra vocรช usar, sรฃo eles: Panel Builder, Form Builder, Table Builder, Notifications, Actions, Widgets, Infolist Builder e Core Concepts, cada um deles com suas respectivas funcionalidades.
ย 

Quais as vantagens de usar FilamentPHP?

Pรกgina inicial da documentaรงรฃo do FilamentPHP

Facilidade: Usando o FilamentPHP vocรช vรช vรกrias linhas de cรณdigo se tornarem uma sรณ. Vocรช consegue implementar facilmente recursos como filtros e campos de buscas em segundos. Basta um comando e o Filament consegue montar seu formulรกrio prontinho sรณ pra vocรช moldar como quiser.

Desacoplamento: Os mรณdulos do Filament tambรฉm podem ser utilizados de forma independente, sem a necessidade da instalaรงรฃo de todo seu ecossistema. Entรฃo, se vocรช quiser usar sรณ o Form Builder ou o Table Builder, vocรช pode instalรก-los sem precisar instalar todo o restante.

Produtividade: Com as vรกrias facilidades que essa ferramenta oferece, o seu desenvolvimento fica muito mais rรกpido, uma funรงรฃo que vocรช normalmente demoraria umas horas pra fazer pode durar apenas minutos.

Customizรกvel: Afinal, quem tem limite รฉ estado, nรฃo รฉ mesmo? Apesar de o foco do Filament ser em painรฉis administrativos, vocรช pode utilizรก-lo tambรฉm para criar sites por exemplo, com ele vocรช รฉ livre pra usar sua imaginaรงรฃo.

Open-source: Isso mesmo, lรก no Github vocรช pode clonar o repositรณrio do Filament e adicionar sua contribuiรงรฃo. No prรณprio readme do projeto vocรช encontra orientaรงรตes de como rodar o projeto na sua mรกquina.

Gratuito: Nรฃo podemos esquecer o melhor de tudo nรฉ? O FilamentPHP รฉ totalmente gratuito.
ย 

O que preciso para usar FilamentPHP?

Para usar FilamentPHP vocรช precisa ter os seguintes requisitos :

  • PHP 8.1+
  • Laravel v10.0+
  • Livewire v3.0+

Esses requisitos valem para o FilamentPHP v3.2, vocรช pode ver os requisitos para as outras versรตes visitando a aba de Instalaรงรฃo lรก dentro da documentaรงรฃo. ร‰ recomendado o uso da versรฃo mais atual, pois ela veio com muito mais recursos que as anteriores e de forma ainda mais simplificada, porรฉm, se vocรช optar por uma versรฃo mais baixa, saiba que alguns recursos podem nรฃo estar presentes ou mudaram a forma de implementaรงรฃo.

Para o desenvolvimento em Filament, รฉ muito importante que vocรช tenha uma boa noรงรฃo de PHP + Laravel, pois assim alรฉm de a ferramenta ser melhor aproveitada, entendendo isso, vocรช pode desacoplar as funcionalidades com mais facilidade, assim usufruindo de todas as vantagens de utilizรก-lo.
ย 

Instalando o Filament

Para instalar o FilamentPHP, dentro do seu projeto Laravel rode o seguinte comando:

composer require filament/filament:"^3.2" -Wย 
Enter fullscreen mode Exit fullscreen mode

Depois disso, rode o comando a seguir. Este vai instalar o Painel:

php artisan filament:install --panels
Enter fullscreen mode Exit fullscreen mode

E por รบltimo, para criar seu usuรกrio do painel, utilize o comando:

php artisan make:filament-user
Enter fullscreen mode Exit fullscreen mode

E pronto, agora vocรช jรก pode acessar seu painel Filament, basta rodar um php artisan serve e acessar a URL localhost:8000/admin e logar com o e-mail e senha do usuรกrio que vocรช criou.
ย 

Demonstraรงรฃo de uso do FilamentPHP na prรกtica

No vรญdeo acima, eu demonstro a criaรงรฃo de uma resource utilizando Filament. A resource jรก vem com o CRUD completo e funcional, com seu formulรกrio e sua tabela jรก montados.

Para criar essa resource eu sigo os seguintes passos:

Primeiro, antes de criar a resource vocรช precisarรก somente de 3 coisas

  • A sua tabela no banco de dados do seu projeto Laravel deve estar criada.
  • No seu Model, a sua variavel $fillable deve conter todos os campos existentes na sua tabela.
  • E obviamente, ter o FilamentPHP instalado no seu projeto. (Passo a passo no tรณpico anterior).

Vocรช pode facilmente fazer isso da seguinte forma:

Use o comando abaixo com o nome do Model que vocรช desejar (no caso o nome do meu Model รฉ Product) com a flag -m para que a migration jรก seja criada junto:

php artisan make:model Product -m
Enter fullscreen mode Exit fullscreen mode

Na Migration que vocรช acabou de criar, coloque os campos que vocรช desejar adicionar na sua tabela, ela deve ficar mais ou menos assim:

<?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');
    }
};
Enter fullscreen mode Exit fullscreen mode

Depois de adicionar seus campos, rode um php artisan migrate para que seja criada a tabela no seu banco de dados.

Apรณs criada a tabela, declare os campos da sua tabela na variรกvel $fillable dentro do seu Model como no exemplo abaixo:

<?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',

    ];
}
Enter fullscreen mode Exit fullscreen mode

E pronto, agora รฉ sรณ correr pro abraรงo! Para criar sua resource, vocรช sรณ vai precisar do seguinte comando (onde Product รฉ o nome do seu Model):

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
Enter fullscreen mode Exit fullscreen mode

ย 

Conclusรฃo

Vocรช pode ter um gostinho das funcionalidades do FilamentPHP visitando a demo, lรก mostra de forma prรกtica um exemplo de como os componentes podem ser utilizados e organizados em tela no seu projeto. O Filament tambรฉm tem uma comunidade no Discord que estรก sempre pronta pra te ajudar e tirar suas dรบvidas.

Alรฉm disso, reza a lenda que a versรฃo 4 vem ainda esse ano com ainda mais novidades.

"Ah mas vocรช ta fazendo propaganda do negรณcio", acho que o que รฉ bom tem ser mostrado nรฉ pessoal.
Eai, vamos pro Filament?

ย 

Referรชncias

ย 

Meus agradecimentos a @cherryramatis,@clintonrocha98 e @redrodrigoc pelas dicas e sugestรตes para este artigo, vocรชs sรฃo demais ๐Ÿ’œ

Top comments (30)

Collapse
 
zangui_gomes_5d9eac7fab98 profile image
Zangui Gomes

Olรก, Adrianne
Talvรฉs me possas ajudar....
Tenho um projecto desenvolvido com laravel 10 e usa o filament para gerenciar o conteรบdo. Acontece que, localmente, consigo acessar o painel sem problemas mas, em procuรงรฃo, retorna erro:
Primeiro apresentou o erro 403 que foi superdado com as configuraรงรฃo do livewire... agora estรก a retornar o erro 500 (erro de servidor).
Alguma idรฉia a respeito?

Collapse
 
adryannekelly profile image
Adryanne Kelly

Oii zangui, desculpe a demora na resposta, vocรช conseguiu resolver seu problema?

Collapse
 
cherryramatis profile image
Cherry Ramatis

Incrivel material inicial! Estou super ansiosa para mais detalhes sobre o filament, nรฃo estou inserida na comunidade PHP mas estou suuuuper curiosa para saber mais sobre esse framework. Talvez vou construir algumas coisinhas com laravel ๐Ÿ‘€

Collapse
 
adryannekelly profile image
Adryanne Kelly

Obrigada viu, รฉ o primeirรญssimo de muitos. ๐Ÿ’œ

Collapse
 
clintonrocha98 profile image
Clinton Rocha

Parabรฉns pelo conteรบdo, รณtimas explicaรงรตes!!!๐Ÿ’œ

Collapse
 
adryannekelly profile image
Adryanne Kelly

Obrigada Clinton, seus artigos tambรฉm sรฃo maravilhosos viu ๐Ÿ’œ

Collapse
 
theteacherjoao profile image
Joรฃo Corrรชa

Belรญssimo artigo, muito bem estruturado, explicado e detalhado!
Parabรฉns pelo conteรบdo! =)

Collapse
 
adryannekelly profile image
Adryanne Kelly

Muito obrigada Teacher ๐Ÿ’œ

Collapse
 
reenatoteixeira profile image
Renato Teixeira

eu tรด recรฉm chegando no mundo PHP e achei isso aqui muito massa!

Collapse
 
adryannekelly profile image
Adryanne Kelly

Que bom que gostou viu
ร‰ muito gostosinho de usar โ˜บ๏ธ

Collapse
 
redrodrigoc profile image
Rodrigo Castro

Parabรฉns pelo conteรบdo, muito bem explicado os conceitos bases.

Collapse
 
adryannekelly profile image
Adryanne Kelly

Muito obrigada ๐Ÿ’œ

Collapse
 
danielhe4rt profile image
Daniel Reis

Filament รฉ algo que eu sempre uso nos meus projetos e nunca me arrependo.

Algum dia eu ainda viro um mestre igual a vocรช na ferramente :p

Collapse
 
adryannekelly profile image
Adryanne Kelly

Ah que modestia, vocรช deve ser tรฃo bom quanto, atรฉ mais. ๐Ÿคญ
Uso muito o Filament e jรก tenho vรกrios projetos em produรงรฃo com ele, de longe uma das melhores ferramentas que me apresentaram.

Collapse
 
guidev115 profile image
Guilherme Fabrรญcio

Filament รฉ sempre bom nos projetos, ainda mais nos meus, belo conteรบdoโค๏ธ

Collapse
 
adryannekelly profile image
Adryanne Kelly

Muito obrigada Gui ๐Ÿ’œ

Collapse
 
anthonyvii profile image
Anthony Vinicius

Excelente artigo!! Muito bem explicado!

Collapse
 
adryannekelly profile image
Adryanne Kelly

Muito obrigada ๐Ÿฅฐ๐Ÿฅน๐Ÿ’œ

Collapse
 
marlonhenq profile image
Marlon

Muito bom!!

Collapse
 
adryannekelly profile image
Adryanne Kelly

Muito obrigada Marlon ๐Ÿฅฐ

Some comments may only be visible to logged-in visitors. Sign in to view all comments. Some comments have been hidden by the post's author - find out more