🚀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.

Muito obrigado pelo feedback, realmente não tive tempo de documentar no readme, mas vou dar uma caprichada lá. Muito brigado pela dica do testes, irei fazer e implementar assim q possível! Tem muita coisa que quero adicionar e melhorar nesse package, mas é apenas o começo. Vlw!
Boa!! Acabei de ver que atualizou lá, ficou muito bacana agora!