LaraToolkit é uma biblioteca para Laravel que fornece um conjunto de ferramentas e abstrações para agilizar o desenvolvimento de aplicações. Com comandos personalizados, traits úteis e classes de abstração, o LaraToolkit ajuda a padronizar e simplificar tarefas comuns no desenvolvimento com Laravel.
Para instalar o LaraToolkit, adicione o pacote ao seu projeto Laravel usando o Composer:
composer require marioneto/lara-toolkit
- PHP: >= 8.0
- Laravel: 8.x, 9.x ou 10.x
O LaraToolkit adiciona comandos personalizados ao Artisan para gerar classes de Service e Repository de forma padronizada.
Gera uma classe de Service organizada por domínio.
Sintaxe:
php artisan make:service {nome} {dominio}
{nome}
: O nome do Service a ser criado.{dominio}
: O domínio ao qual o Service pertence.
Exemplo:
php artisan make:service Create User
Isso criará a classe CreateService
em app/Services/User/CreateService.php
.
Gera uma classe de Repository que estende AbstractRepository
.
Sintaxe:
php artisan make:repository {nome}
{nome}
: O nome Model para o Repository a ser criado.
Exemplo:
php artisan make:repository User
Isso criará a classe UserRepository
em app/Repositories/UserRepository.php
.
A trait ApiControllerTrait
fornece métodos para padronizar as respostas de APIs em suas controllers.
returnSuccess($data, string $message = null, int $statusCode = 200)
: Retorna uma resposta JSON de sucesso.returnError(string $message, Throwable $exception = null, int $statusCode = 500)
: Retorna uma resposta JSON de erro, registrando a exceção no log sem usar facades ou helpers.
A classe AbstractRepository
é uma abstração que fornece métodos comuns para interagir com modelos Eloquent, como:
getAll()
getById($id)
create(array $attributes)
update($id, array $attributes)
delete($id)
-
Execute o comando
make:service
:php artisan make:service NomeDoService Dominio
Exemplo:
php artisan make:service Create User
-
O Service será criado em
app/Services/{Dominio}/{NomeDoService}Service.php
. -
Implemente a lógica necessária no método
execute()
da classe gerada.
-
Execute o comando
make:repository
:php artisan make:repository NomeDoModel
Exemplo:
php artisan make:repository User
-
O Repository será criado em
app/Repositories/{NomeDoModel}Repository.php
. -
No Repository gerado, o método
model()
já está definido para usar o modelo especificado.
-
Na sua controller, importe e utilize a trait:
<?php namespace App\Http\Controllers; use App\Http\Controllers\Controller; use LaraToolkit\Traits\ApiControllerTrait; class UserController extends Controller { use ApiControllerTrait; // ... }
-
Utilize os métodos
returnSuccess
ereturnError
nas suas ações:public function index() { try { $users = $this->userRepository->getAll(); return $this->returnSuccess($users, 'Usuários obtidos com sucesso.'); } catch (\Exception $exception) { return $this->returnError('Erro ao obter usuários.', $exception); } }
Caso você precise gerar uma excessão onde deseja que a mensagem seja retornada no JSON de erro, você pode usar a excessão BusinessException
.
if ($data['age'] < 18) {
throw new BusinessException('O usuário deve ter pelo menos 18 anos.');
}
Se você estiver usando a trait ApiControllerTrait
, você pode usar o método returnError
para retornar a mensagem da BusinessException
no JSON de erro, suprimindo a mensagem padrão.
Contribuições são bem-vindas! Sinta-se à vontade para abrir issues e pull requests no repositório do GitHub.
Este projeto está licenciado sob a licença MIT. Consulte o arquivo LICENSE para obter mais informações.