🚀Minha primeira biblioteca composer PHP/LARAVEL
Descrição da biblioteca Composer
Esta biblioteca tem como objetivo acrescentar uma coluna adicional nas tabelas, que pode ser usada como "cache" para adicionar e remover flags.
A coluna de cache pode ser útil para armazenar informações temporárias que são usadas pelo aplicativo, mas que não precisam ser permanentes. Ela pode ser usada, por exemplo, para armazenar informações de sessão ou para marcar registros para exclusão em uma operação em lote.
A biblioteca fornece os seguintes métodos:
Adicionar flag à coluna de cache de um registro específico Remover flag da coluna de cache de um registro específico Consultar o valor da flag em um registro específico Assim, é possível gerenciar as flags armazenadas na coluna de cache de maneira eficiente e conveniente.
Como usar?
Primeiro devemos instalar o pacote no seu projeto laravel
composer require caiosalchesttes/laravel-flag
Depois devemos adicionar nas suas migrations para gerar a coluna
$table->flag();
Após isso você pode colocar em sua model que você deseja usar
<?php
namespace App;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Caiosalchesttes\LaravelFlag\Flag:
class User extends Authenticatable
{
use Notifiable, Flag:
Agora você já pode usar alguns dos métodos existentes na instância da sua model
Add
$user = User::find(1);
$user->addFlag('key', 'value');
$user->save();
Add persist
$user = User::find(1);
$user->addFlagPersist('key', 'value');
Remove flag
$user = User::find(1);
$user->removeFlag('key');
$user->save();
Remove flag persist
$user = User::find(1);
$user->removeFlagPersist('key');
Clear all flags
$user = User::find(1);
$user->clearFlags();
$user->save();
Has flag
$user = User::find(1);
$user->hasFag('key');
Get flag
$user = User::find(1);
$user->getFlag('key');
Get all flags
$user = User::find(1);
$user->getFlags();
O que você achou?
Me dê mais dicas do que posso acrescentar no meu pacote e o quê mais posso melhorar. Abraços!
A ideia ficou bem bacana, vou testar melhor na prática em um projeto de testes meu aqui, mas parabéns pelo package!
A única coisa que eu vi que não está bacana é a documentação, você conseguiu detalhar melhor o projeto aqui no TN do que no próprio readme do repo dele.
E também notei a falta de um test nele. Eu não me importo tanto, mas muitos devs PHP dão uma importância enorme aos test units dos pacotes que instalam em seus projetos, pois ajuda a identificar erros e incompatibilidades antes de perder tempo na implementação.
Quando construí meu primeiro package PHP, tive esses mesmos problemas, além de uma grande dificuldade de seguir padrões, e após discutir com uma galera no Reddit (que me ajudou bastante), eu consegui padronizar o código, a documentação em inglês (com opção em PTBR alternativa) e me ajudaram a construir o primeiro test dela.
Caso queira dar uma olhada mais de perto, o pacote é este aqui no GitHub e aqui no Packagist.