PHPackages                             marioneto/lara-toolkit - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. marioneto/lara-toolkit

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

marioneto/lara-toolkit
======================

Um Pacote de recursos para apoiar aplicações Laravel

1.0.4(1y ago)2229MITPHPPHP &gt;=8.0

Since Nov 29Pushed 1y ago1 watchersCompare

[ Source](https://github.com/mariombn/lara-toolkit)[ Packagist](https://packagist.org/packages/marioneto/lara-toolkit)[ RSS](/packages/marioneto-lara-toolkit/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (5)Dependencies (4)Versions (6)Used By (0)

LaraToolkit
===========

[](#laratoolkit)

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

Índice
------

[](#índice)

- [Instalação](#instala%C3%A7%C3%A3o)
- [Requisitos](#requisitos)
- [Funcionalidades](#funcionalidades)
    - [Comandos Artisan Personalizados](#comandos-artisan-personalizados)
        - [`make:service`](#makeservice)
        - [`make:repository`](#makerepository)
    - [Trait `ApiControllerTrait`](#trait-apicontrollertrait)
    - [Classe `AbstractRepository`](#classe-abstractrepository)
- [Como Utilizar](#como-utilizar)
    - [Gerando um Service](#gerando-um-service)
    - [Gerando um Repository](#gerando-um-repository)
    - [Usando a Trait `ApiControllerTrait`](#usando-a-trait-apicontrollertrait)
    - [Criando Exceções Personalizadas](#criando-exce%C3%A7%C3%B5es-personalizadas)
- [Contribuição](#contribui%C3%A7%C3%A3o)
- [Licença](#licen%C3%A7a)

Instalação
----------

[](#instalação)

Para instalar o LaraToolkit, adicione o pacote ao seu projeto Laravel usando o Composer:

```
composer require marioneto/lara-toolkit
```

Requisitos
----------

[](#requisitos)

- **PHP**: &gt;= 8.0
- **Laravel**: 8.x, 9.x ou 10.x

Funcionalidades
---------------

[](#funcionalidades)

### Comandos Artisan Personalizados

[](#comandos-artisan-personalizados)

O LaraToolkit adiciona comandos personalizados ao Artisan para gerar classes de Service e Repository de forma padronizada.

#### `make:service`

[](#makeservice)

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

#### `make:repository`

[](#makerepository)

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

### Trait `ApiControllerTrait`

[](#trait-apicontrollertrait)

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.

### Classe `AbstractRepository`

[](#classe-abstractrepository)

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)`

Como Utilizar
-------------

[](#como-utilizar)

### Gerando um Service

[](#gerando-um-service)

1. Execute o comando `make:service`:

    ```
    php artisan make:service NomeDoService Dominio
    ```

    Exemplo:

    ```
    php artisan make:service Create User
    ```
2. O Service será criado em `app/Services/{Dominio}/{NomeDoService}Service.php`.
3. Implemente a lógica necessária no método `execute()` da classe gerada.

### Gerando um Repository

[](#gerando-um-repository)

1. Execute o comando `make:repository`:

    ```
    php artisan make:repository NomeDoModel
    ```

    Exemplo:

    ```
    php artisan make:repository User
    ```
2. O Repository será criado em `app/Repositories/{NomeDoModel}Repository.php`.
3. No Repository gerado, o método `model()` já está definido para usar o modelo especificado.

### Usando a Trait `ApiControllerTrait`

[](#usando-a-trait-apicontrollertrait)

1. Na sua controller, importe e utilize a trait:

    ```
