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?
- Quais as vantagens de usar FilamentPHP?
- O que preciso para usar FilamentPHP?
- Instalando o Filament
- Demonstração de uso do FilamentPHP na prática
- Conclusão
- Referências
O que é o 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?
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
Depois disso, rode o comando a seguir. Este vai instalar o Painel:
php artisan filament:install --panels
E por último, para criar seu usuário do painel, utilize o comando:
php artisan make:filament-user
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
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');
}
};
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',
];
}
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
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 (28)
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?
Oii zangui, desculpe a demora na resposta, você conseguiu resolver seu problema?
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 👀
Obrigada viu, é o primeiríssimo de muitos. 💜
Não conhecia esse framework! Gostei muito do artigo, tá de parabéns!
Muito obrigada viu, que bom que gostou. 💜
Recomendo muito pra quem é do mundinho do PHP/Laravel
Obrigado pelo conteúdo. Conseguir implementar aqui com sucesso.
Perfeito, muito obrigada e parabéns viu 🥰
Muito bom!!
Muito obrigada Marlon 🥰
Excelente!!!!
Muito obrigada !!
Parabéns pelo conteúdo, ótimas explicações!!!💜
Obrigada Clinton, seus artigos também são maravilhosos viu 💜
Belíssimo artigo, muito bem estruturado, explicado e detalhado!
Parabéns pelo conteúdo! =)
Muito obrigada Teacher 💜
Filament é sempre bom nos projetos, ainda mais nos meus, belo conteúdo❤️
Muito obrigada Gui 💜
eu tô recém chegando no mundo PHP e achei isso aqui muito massa!
Que bom que gostou viu
É muito gostosinho de usar ☺️
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