ricasolucoes/arquiteto

arquiteto

0.4.4 2024-01-16 03:12 UTC

README

Rica Soluções Arquiteto - Geração automática de código Laravel com base em banco de dados MySQL.

Packagist Scrutinizer Code Quality Travis StyleCI License

Laravel PHP MySQL

📚 Índice

🎯 Introdução

O que é a biblioteca Arquiteto?

Arquiteto é uma biblioteca Laravel desenvolvida pela Rica Soluções que acelera drasticamente o desenvolvimento de aplicações através da geração automática de código a partir de bases de dados MySQL existentes ou modelos Eloquent.

A biblioteca implementa um conjunto robusto de comandos Artisan que analisam a estrutura do banco de dados, detectam relacionamentos, e geram automaticamente:

  • Modelos Eloquent com fillables, relationships e soft deletes
  • Migrations Laravel a partir de tabelas MySQL
  • Form Requests com validações baseadas na estrutura da tabela
  • Filtros Eloquent para queries complexas
  • Controllers, Views e Models de forma integrada

Objetivo e Filosofia do Projeto

O Arquiteto foi criado com base nos seguintes princípios:

🚀 Produtividade Acelerada

Reduz significativamente o tempo gasto escrevendo código repetitivo (boilerplate), permitindo que desenvolvedores foquem na lógica de negócio.

📐 Padronização de Código

Garante que toda a equipe siga os mesmos padrões de nomenclatura, estrutura e organização, essenciais em ambientes corporativos.

🔄 Integração com Legado

Facilita a modernização de sistemas legados, gerando automaticamente modelos Laravel a partir de estruturas de banco de dados existentes.

🧩 Arquitetura Limpa

Promove boas práticas de desenvolvimento com separação clara de responsabilidades e código organizado.

Benefícios de Uso

Benefício Descrição
⚡ Velocidade Gera em segundos o que levaria horas para escrever manualmente
🎯 Precisão Detecta automaticamente tipos de dados, constraints e relacionamentos
🔒 Segurança Gera validações baseadas na estrutura real do banco de dados
📦 Escalabilidade Facilita a expansão de projetos com novos módulos padronizados
👥 Colaboração Equipes trabalham com código consistente e previsível
🔧 Manutenibilidade Código gerado segue convenções Laravel, facilitando manutenção

Contexto no Ecossistema Rica Soluções

O Arquiteto é peça fundamental na stack de desenvolvimento da Rica Soluções, integrando-se perfeitamente com outras bibliotecas internas:

┌─────────────────────────────────────────────────────────────┐
│                   Ecossistema Rica Soluções                  │
├─────────────────────────────────────────────────────────────┤
│  📦 Arquiteto (Geração de Código)                            │
│  📦 Muleta (Ferramentas e Traits Reutilizáveis)             │
│  📦 Support (Parsers e Utilitários)                          │
│  📦 Pedreiro (Gestão de Exceções)                            │
├─────────────────────────────────────────────────────────────┤
│  🌐 APIs REST / GraphQL                                       │
│  🔐 Autenticação e Autorização                               │
│  📊 Dashboards e Relatórios                                  │
│  🛠️  Microserviços Laravel                                    │
└─────────────────────────────────────────────────────────────┘

Casos de Uso Ideais

Migração de sistemas legados - Gere modelos Laravel de bases existentes ✅ Prototipagem rápida - Crie MVPs e provas de conceito rapidamente ✅ APIs REST/GraphQL - Scaffolding de recursos com models e requests ✅ Microserviços - Padronize a estrutura de múltiplos serviços ✅ Refatoração - Modernize projetos antigos com estrutura Laravel atual

🚀 Início Rápido

Instalação

composer require ricasolucoes/arquiteto

Uso Básico

# Gerar modelo a partir da tabela 'users'
php artisan arquiteto:migrationFromMysql users

# Gerar migration a partir da tabela
php artisan arquiteto:migrationFromMysql database.users

# Gerar form request com validações
php artisan arquiteto:request users

# Gerar filtro Eloquent
php artisan arquiteto:filter UserFilter

📖 Documentação Completa

📚 Guias Principais

  • Instalação - Requisitos, instalação e configuração inicial
  • Arquitetura - Estrutura interna, namespaces e padrões
  • Comandos - Referência completa de todos os comandos
  • Uso Prático - Como usar no dia a dia com exemplos

🔧 Guias Avançados

  • Integração - Integração com ecossistema Rica Soluções
  • Extensão - Como customizar e estender funcionalidades
  • Exemplos - Exemplos reais de projetos da Rica Soluções

👥 Colaboração

🏗️ Arquitetura Resumida

Arquiteto/
├── Console/Commands/          # Comandos de geração de código
│   ├── Generate.php           # Gera controller + model + view
│   ├── GenerateModelFromMySQL.php      # Model a partir do MySQL
│   ├── GenerateMigrationFromMySQL.php  # Migration do MySQL
│   ├── GenerateRequestFromMySQL.php    # Form Request do MySQL
│   └── MakeEloquentFilter.php          # Cria filtros Eloquent
├── Contracts/
│   ├── AbstractGeneratorCommand.php    # Base para geradores
│   └── Traits/
│       └── ManipuleFile.php           # Manipulação de arquivos
├── Facades/
│   └── Arquiteto.php          # Facade Laravel
└── Services/
    └── ArquitetoService.php   # Serviço principal

🎓 Exemplo Completo

Cenário: Criar estrutura completa para entidade "Product"

# 1. Gerar modelo Eloquent a partir da tabela products
php artisan arquiteto:migrationFromMysql products

# 2. Gerar form request com validações
php artisan arquiteto:request products

# 3. Gerar filtro para queries avançadas
php artisan arquiteto:filter ProductFilter

# 4. Resultado: estrutura completa gerada
app/
├── Models/
│   └── Product.php            # Com fillables e relationships
├── Http/
│   ├── Requests/
│   │   └── ProductRequest.php # Validações automáticas
│   └── Controllers/
└── ModelFilters/
    └── ProductFilter.php      # Filtros reutilizáveis

O modelo gerado automaticamente inclui:

// app/Models/Product.php
namespace Support;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;

class Product extends Model {
    use SoftDeletes;

    protected $table = 'products';
    public $timestamps = false;

    public $fillable = [
        'name',        // (varchar(255))
        'description', // (text)
        'price',       // (decimal(10,2))
        'category_id', // (int)
        'created_at',  // (timestamp)
    ];

    /**  One-to-Many Relations  **/
    public function Category() {
        return $this->hasOne('Arquiteto\Category', 'id', 'category_id');
    }

    /**  Many-to-One Relations  **/
    public function Orders() {
        return $this->hasMany('Arquiteto\Order', 'product_id', 'id');
    }
}

🤝 Suporte e Comunidade

🔒 Vulnerabilidades de Segurança

Se você descobrir uma vulnerabilidade de segurança dentro deste projeto, por favor envie um e-mail para help@ricasolucoes.com.br. Todas as vulnerabilidades de segurança serão prontamente tratadas.

🏢 Sobre a SierraTecnologia

SierraTecnologia é uma startup de soluções de software, especializada em soluções empresariais integradas para PMEs, estabelecida no Rio de Janeiro, Brasil, desde junho de 2008.

Acreditamos que nosso compromisso com O Valor, O Alcance e O Impacto é o que nos diferencia e libera as infinitas possibilidades de nossa filosofia através do poder do software. Gostamos de chamar isso de Inovação na Velocidade da Vida. É assim que fazemos nossa parte para avançar a humanidade.

Nossa Missão

Desenvolver soluções tecnológicas inovadoras que transformam desafios empresariais em oportunidades de crescimento, entregando valor real através de software de qualidade.

Rica Soluções

Rica Soluções é a marca de produtos e serviços da SierraTecnologia, focada em bibliotecas Laravel, ferramentas de desenvolvimento e soluções corporativas de código aberto.

📝 Licença

Este software é disponibilizado sob a licença MIT License.

© 2008-2025 SierraTecnologia / Rica Soluções - Alguns direitos reservados.

🌟 Créditos

Desenvolvido com ❤️ pela equipe SierraTecnologia através da Rica Soluções.

Empresa: SierraTecnologia Produto: Rica Soluções Email: help@ricasolucoes.com.br

🔗 Links Úteis

Feito com 🚀 pela Rica Soluções
Inovação na velocidade da vida.