callcocam/laravel-raptor
Composer 安装命令:
composer require callcocam/laravel-raptor
包简介
This is my package laravel-raptor
README 文档
README
Um pacote completo Laravel para construção rápida de aplicações multi-tenant com sistema de permissões integrado, formulários dinâmicos e tabelas interativas usando Inertia.js e shadcn-vue.
Características Principais
- Multi-Tenancy Completo: Suporte para subdomínios e domínios customizados
- Sistema Shinobi: Gerenciamento robusto de roles e permissões
- Form Fields Modernos: Componentes Vue 3 usando primitivos shadcn-vue
- Table Columns Personalizadas: 9+ tipos de colunas pré-configuradas
- Controllers Inteligentes: Sistema de controllers com métodos padronizados
- Navegação Automática: Geração automática de menus baseada em controllers
- Inertia.js Integrado: SSR-ready com TypeScript
Requisitos
- PHP 8.2+
- Laravel 12.0+
- Node.js 18+
- Inertia.js 2.0+
Instalação
Instale o pacote via Composer:
composer require callcocam/laravel-raptor
Publique os arquivos de configuração:
php artisan vendor:publish --tag="raptor-config"
Publique as migrations:
php artisan vendor:publish --tag="raptor-migrations"
Execute as migrations:
php artisan migrate
Configuração Rápida
1. Configure o arquivo .env
RAPTOR_MAIN_DOMAIN=localhost RAPTOR_LANDLORD_SUBDOMAIN=landlord RAPTOR_DB_STRATEGY=shared
2. Adicione o trait HasRolesAndPermissions ao seu User Model
use Callcocam\LaravelRaptor\Support\Shinobi\HasRolesAndPermissions; class User extends Authenticatable { use HasRolesAndPermissions; }
3. Configure seus controllers
use Callcocam\LaravelRaptor\Http\Controllers\TenantController; class ProductController extends TenantController { public function model(): ?string { return Product::class; } public function getPages(): array { return [ 'index' => Index::route('/products') ->label('Produtos') ->icon('Package'), ]; } protected function form(Form $form): Form { return $form->columns([ TextField::make('name', 'Nome')->required(), TextareaField::make('description', 'Descrição'), ]); } protected function table(TableBuilder $table): TableBuilder { return $table->columns([ TextColumn::make('name', 'Nome')->searchable(), DateColumn::make('created_at', 'Criado em')->relative(), ]); } }
Documentação Completa
Acesse a documentação completa em /docs:
- Form Fields - Componentes de formulário
- Table Columns - Colunas de tabela personalizadas
- Controllers - Estrutura de controllers
- Shinobi - Sistema de roles e permissões
- Multi-Tenancy - Configuração de multi-tenancy
- Migration Guide - Migração de FormColumn para FormField
- Examples - Exemplos práticos
Início Rápido
Criar um CRUD Completo
// 1. Crie seu Model php artisan make:model Product -m // 2. Crie o Controller php artisan make:controller Tenant/ProductController // 3. Estenda TenantController e implemente os métodos class ProductController extends TenantController { public function model(): ?string { return Product::class; } // Implemente: getPages(), form(), table() } // 4. As rotas são registradas automaticamente!
Form Fields Disponíveis
FormFieldText- Input de texto com prepend/appendFormFieldTextarea- Área de texto com contadorFormFieldEmail- Campo de email validadoFormFieldPassword- Senha com toggle de visibilidadeFormFieldNumber- Input numéricoFormFieldDate- Seletor de data/datetimeFormFieldSelect- Select com normalizaçãoFormFieldCheckbox- Checkbox com layouts flexíveisFormFieldFileUpload- Upload com drag & dropFormFieldHidden- Campo oculto
Table Columns Disponíveis
TextColumn- Texto simplesEmailColumn- Email formatadoDateColumn- Data com formatos customizáveisBooleanColumn- Sim/Não com coresPhoneColumn- Telefone com formatação BRStatusColumn- Status com badges coloridosMoneyColumn- Valores monetários (BRL, USD, EUR)ImageColumn- Exibição de imagensBadgeColumn- Badges personalizados
Multi-Tenancy
O Laravel Raptor suporta dois modos de multi-tenancy:
Shared Database (Padrão)
RAPTOR_DB_STRATEGY=shared
Todos os tenants compartilham o mesmo banco de dados. Os registros são isolados pela coluna tenant_id.
Separate Database
RAPTOR_DB_STRATEGY=separate RAPTOR_DB_PREFIX=tenant_
Cada tenant possui seu próprio banco de dados (ex: tenant_1, tenant_2).
Sistema Shinobi (Roles & Permissions)
// Criar uma role $role = Role::create(['name' => 'admin', 'slug' => 'admin']); // Criar uma permissão $permission = Permission::create([ 'name' => 'Criar Produtos', 'slug' => 'products.create' ]); // Atribuir permissão à role $role->permissions()->attach($permission); // Atribuir role ao usuário $user->roles()->attach($role); // Verificar permissões if ($user->hasPermission('products.create')) { // usuário pode criar produtos }
Exemplo de Uso
Formulário Completo
protected function form(Form $form): Form { return $form->columns([ TextField::make('name', 'Nome do Produto') ->required() ->placeholder('Digite o nome'), SelectField::make('category_id', 'Categoria') ->options(Category::pluck('name', 'id')) ->searchable(), TextareaField::make('description', 'Descrição') ->maxLength(500) ->rows(5), CheckboxField::make('active', 'Ativo') ->default(true), ]); }
Tabela com Filtros
protected function table(TableBuilder $table): TableBuilder { return $table ->columns([ TextColumn::make('name', 'Nome')->searchable(), StatusColumn::make('status', 'Status') ->statuses([ 'active' => ['label' => 'Ativo', 'color' => 'success'], 'inactive' => ['label' => 'Inativo', 'color' => 'danger'], ]), DateColumn::make('created_at', 'Criado')->relative(), ]) ->actions([ EditAction::make('products.edit'), DeleteAction::make('products.destroy'), ]); }
Migrations em Múltiplos Bancos
O Raptor inclui um comando para executar migrations em múltiplos bancos de dados (tenants, clients e stores):
php artisan raptor:migrate-tenants
Este comando:
- Lista automaticamente todos os tenants/clients/stores com banco de dados configurado
- Cria o banco de dados automaticamente se não existir
- Executa migrations específicas conforme configuração
- Suporta filtros por tipo e database
Documentação completa: Veja MULTI_DATABASE_MIGRATIONS.md para detalhes.
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.
callcocam/laravel-raptor 适用场景与选型建议
callcocam/laravel-raptor 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 1.82k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 11 月 14 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「laravel」 「Claudio Campos」 「laravel-raptor」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 callcocam/laravel-raptor 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 callcocam/laravel-raptor 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 callcocam/laravel-raptor 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Magento 2 module to adapt customer and address fields to brazil.
This is my package plannerate
Um pacote robusto e flexível para Laravel que oferece gerenciamento avançado de controle de acesso (ACL) e multi-tenancy em uma única solução integrada
Magento 2 module to adapt customer and address fields to brazil.
Alfabank REST API integration
This is my package laravel-raptor-flow
统计信息
- 总下载量: 1.82k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 14
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-11-14