PHPackages                             eduardaleal/laravel-clean-flow - 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. [Framework](/categories/framework)
4. /
5. eduardaleal/laravel-clean-flow

ActiveLibrary[Framework](/categories/framework)

eduardaleal/laravel-clean-flow
==============================

Biblioteca para geração de arquitetura limpa (Controller -&gt; Service -&gt; Repository) no Laravel.

v2.2.0(2mo ago)0111PHP

Since Feb 28Pushed 2mo agoCompare

[ Source](https://github.com/MariaEduardaLeal/laravel-clean-flow)[ Packagist](https://packagist.org/packages/eduardaleal/laravel-clean-flow)[ RSS](/packages/eduardaleal-laravel-clean-flow/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (7)Dependencies (10)Versions (8)Used By (0)

🏗️ Laravel Clean Flow - Padrão Arquitetural
===========================================

[](#️-laravel-clean-flow---padrão-arquitetural)

Esta ferramenta automatiza a criação de arquivos baseados no padrão **Controller → Service → Repository**, e também facilita a criação de Views (Blade e Vue), garantindo a aplicação de Clean Code, princípios SOLID e Injeção de Dependência logo no momento da geração do código.

---

🎯 Nossa Filosofia (Regras de Ouro)
----------------------------------

[](#-nossa-filosofia-regras-de-ouro)

Para manter nossos sistemas escaláveis e fáceis de dar manutenção, este pacote força as seguintes diretrizes:

1. **Controllers Enxutos:** O Controller serve **apenas** para receber a requisição HTTP e devolver a resposta. Nunca escreva regras de negócio aqui.
2. **Services (Regras de Negócio):** Toda lógica, cálculos, envio de e-mails e processos complexos moram na camada de Service.
3. **Repositories (Banco de Dados):** O acesso aos dados fica estritamente isolado nos Repositories. O Service pede os dados para o Repository.
4. **Injeção de Dependência:** As classes geradas interagem através de injeção no construtor, facilitando a criação de *Mocks* e testes unitários. Não utilizamos métodos estáticos para regras de negócio.
5. **Padrão de Nomenclatura:** Todos os métodos, funções e variáveis geradas utilizam o padrão `snake_case`.
6. **Documentação Rigorosa:** Todos os métodos gerados já incluem DocBlocks detalhados (`@param`, `@return`, `@throws`).

---

⚙️ Instalação
-------------

[](#️-instalação)

Como o pacote está publicado no Packagist, a instalação em qualquer projeto novo é feita com um único comando:

```
composer require eduardaleal/laravel-clean-flow
```

> **Nota para ambientes conteinerizados:** Se o seu projeto estiver rodando com Docker (por exemplo, via Laravel Sail), lembre-se de rodar `./vendor/bin/sail composer require eduardaleal/laravel-clean-flow`.

A biblioteca utiliza o recurso de **Auto-Discovery** do Laravel, portanto, nenhum Service Provider precisa ser registrado manualmente. Instalou, está pronto para usar!

---

📦 Comandos Disponíveis
----------------------

[](#-comandos-disponíveis)

### 1. O Comando Mestre: `make:flow` ⭐ Recomendado

[](#1-o-comando-mestre-makeflow--recomendado)

Gera o ecossistema completo de uma nova funcionalidade de uma só vez, interligando todas as camadas corretamente.

```
php artisan make:flow Agendamento
```

**O que ele cria:**

ArquivoCaminhoModel`app/Models/Agendamento.php`Repository`app/Repositories/AgendamentoRepository.php`Service`app/Services/AgendamentoService.php`Controller`app/Http/Controllers/AgendamentoController.php`- O **Repository** já vem com listagem paginada em `snake_case` plural: `get_paginated_agendamentos`
- O **Service** já vem com o método principal `process_agendamento` e injeção do Repository
- O **Controller** já vem com o Service injetado no construtor de forma limpa

---

### 2. Criando Apenas um Service: `make:service`

[](#2-criando-apenas-um-service-makeservice)

Gera uma camada de serviço isolada. A biblioteca adiciona o sufixo `Service` automaticamente caso você esqueça.

```
php artisan make:service RelatorioFinanceiro
```

**O que ele gera:** Um arquivo `RelatorioFinanceiroService.php` contendo:

- Estrutura base orientada a objetos (sem métodos estáticos)
- Método principal nomeado dinamicamente: `process_relatorio_financeiro`
- DocBlocks com lembretes arquiteturais para uso de Transactions (`DB`) em operações críticas e Queues/Jobs para envios demorados

---

### 3. Criando Apenas um Repository: `make:repository`

[](#3-criando-apenas-um-repository-makerepository)

Gera uma classe isolada focada na camada de persistência.

```
php artisan make:repository Cliente
```

**O que ele gera:** Um arquivo `ClienteRepository.php` contendo:

- Importação automática do Model `Cliente`
- Método estruturado para paginação
- DocBlocks educativos alertando a equipe sobre o uso de **Cache**, **Indexação** nas tabelas e o perigo de não utilizar Paginação em tabelas extensas

---

### 4. Criando Arquivos de View: `make:view` 🎨 Novo

[](#4-criando-arquivos-de-view-makeview--novo)

Gera arquivos de interface visual (`.blade.php` ou `.vue`) organizados na estrutura de pastas de recursos do seu projeto. Muito útil para quem trabalha com **Inertia.js** ou componentes Blade.

**Exemplos de uso:**

```
# Cria uma view Blade padrão (resources/views/profile.blade.php)
php artisan make:view profile

# Cria um componente Blade (resources/views/components/button.blade.php)
php artisan make:view button --component

# Cria uma página Vue/Inertia (resources/js/Pages/Dashboard.vue)
php artisan make:view Dashboard --vue

# Cria um componente Vue (resources/js/Components/Modal.vue)
php artisan make:view Modal --vue --component
```

**Como funciona a estrutura de pastas gerada:**

OpçãoCaminho para Blade (Padrão)Caminho para Vue (`--vue`)*(Nenhuma)*`resources/views/NomeView.blade.php``resources/js/Pages/NomeView.vue``--component``resources/views/components/NomeView.blade.php``resources/js/Components/NomeView.vue``--template``resources/views/templates/NomeView.blade.php``resources/js/Templates/NomeView.vue`---

💡 Boas Práticas Pós-Geração
---------------------------

[](#-boas-práticas-pós-geração)

O código gerado é um molde perfeito, mas a responsabilidade de mantê-lo limpo é sua. Siga estas dicas ao preencher a lógica:

**Respostas da API**No Controller, ao devolver a resposta do Service, planeje sempre o uso de API Resources (`php artisan make:resource`) para padronizar o retorno JSON e pensar no versionamento da API.

**Transações**No Service, se for salvar múltiplos registros dependentes (ex: criar um usuário e gerar a fatura dele logo em seguida), descomente o bloco `DB::beginTransaction()` e `DB::commit()` fornecido no stub.

###  Health Score

37

—

LowBetter than 83% of packages

Maintenance87

Actively maintained with recent releases

Popularity7

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity39

Early-stage or recently created project

 Bus Factor1

Top contributor holds 90.9% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~2 days

Total

6

Last Release

63d ago

Major Versions

v1.0.1 → v2.0.02026-02-28

### Community

Maintainers

![](https://www.gravatar.com/avatar/515a1d3e35854b7e1c78c81b92ec45a54a3b30d97121a2a14b71e4d8bd4753ee?d=identicon)[MariaEduardaLeal](/maintainers/MariaEduardaLeal)

---

Top Contributors

[![MariaEduardaLeal](https://avatars.githubusercontent.com/u/71770176?v=4)](https://github.com/MariaEduardaLeal "MariaEduardaLeal (10 commits)")[![natanfiuza](https://avatars.githubusercontent.com/u/533266?v=4)](https://github.com/natanfiuza "natanfiuza (1 commits)")

###  Code Quality

TestsPest

### Embed Badge

![Health badge](/badges/eduardaleal-laravel-clean-flow/health.svg)

```
[![Health](https://phpackages.com/badges/eduardaleal-laravel-clean-flow/health.svg)](https://phpackages.com/packages/eduardaleal-laravel-clean-flow)
```

###  Alternatives

[laravel/tinker

Powerful REPL for the Laravel framework.

7.4k423.8M1.8k](/packages/laravel-tinker)[laravel/ui

Laravel UI utilities and presets.

2.7k134.9M601](/packages/laravel-ui)[laravel/passport

Laravel Passport provides OAuth2 server support to Laravel.

3.4k85.0M532](/packages/laravel-passport)[laravel/sail

Docker files for running a basic Laravel application.

1.9k186.9M1.0k](/packages/laravel-sail)[laravel/jetstream

Tailwind scaffolding for the Laravel framework.

4.1k19.8M136](/packages/laravel-jetstream)[laravel/breeze

Minimal Laravel authentication scaffolding with Blade and Tailwind.

3.0k31.3M148](/packages/laravel-breeze)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
