gnu/scaffy-laravel
最新稳定版本:v1.7.1
Composer 安装命令:
composer require gnu/scaffy-laravel
包简介
Laravel adapters for the Scaffy/Core package.
README 文档
README
Scaffy Laravel is a Laravel-specific adapter for the Scaffy Core code generation system. It provides an Artisan command to generate Eloquent models directly from your database schema.
✨ Features
- 🎯 Generate models from SQL Server, PostgreSQL, or MySQL
- 🔌 Fully decoupled via Hexagonal Architecture
- 🔍 Analyzes your database structure using Laravel's DB layer
- ⚙️ Pluggable support for custom adapters and databases
- 🛠️ Uses Laravel's Artisan Console Command
🚀 Installation
composer require gnu/scaffy-laravel
Scaffy Laravel will be auto-discovered by Laravel.
📦 Requirements
- PHP 8.1+
- Laravel 10, 11, or 12
- One of:
- SQL Server (
sqlsrv) - PostgreSQL (
pgsql) - MySQL (
mysql)
- SQL Server (
🧰 Usage
php artisan scaffy:generate --schema=your_schema
Options
| Option | Description |
|---|---|
--schema |
The database schema to use |
--table |
Only generate a model for a specific table |
--output |
(Coming soon) Output path for generated models (default: app/Models) |
--with-relations |
(Coming soon) Generate relationships between models |
⚙️ Configuration & Binding
Scaffy binds a default database adapter based on your DB_CONNECTION.
To override or extend:
use Gnu\Scaffy\Laravel\Ports\DatabasePort; use App\Adapters\CustomPostgresAdapter; $this->app->bind(DatabasePort::class, fn () => new CustomPostgresAdapter());
🧱 Architecture
Scaffy follows Hexagonal Architecture:
scaffy-core: Business logic & interfacesscaffy-laravel: Laravel integration (command, container)- Future: CLI, Symfony, CodeIgniter, standalone PHP
🧪 Example Output
namespace App\Models; use Illuminate\Database\Eloquent\Model; class User extends Model { protected $fillable = [ 'id', 'name', 'email' ]; public $timestamps = false; public function getTable() { return 'dbo.users'; } }
📄 License
MIT © gnujesus
统计信息
- 总下载量: 30
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-07-02