danielmabadeje/laravel-dao-generator
Composer 安装命令:
composer require danielmabadeje/laravel-dao-generator
包简介
Scaffold Service -> DAO -> RepositoryInterface -> EloquentRepository -> Model architecture for Laravel with a single artisan command.
README 文档
README
Scaffold the Service -> DAO -> RepositoryInterface -> EloquentRepository -> Model architecture
with a single artisan command — and optionally generate a DTO layer too.
Installation
composer require danielmabadeje/laravel-dao-generator --dev
The package auto-registers via Laravel's package discovery.
Usage
php artisan make:dao Product
This generates:
app/
├── DataTransferObjects/ProductData.php
├── Repositories/
│ ├── Contracts/ProductRepositoryInterface.php
│ └── Eloquent/EloquentProductRepository.php
├── DAOs/ProductDAO.php
├── Services/ProductService.php
└── Providers/RepositoryServiceProvider.php (created on first run)
It also:
- Binds
ProductRepositoryInterface->EloquentProductRepositoryinsideRepositoryServiceProvider. - Registers
RepositoryServiceProviderinbootstrap/providers.php(Laravel 11+) if not already present. - Is idempotent — running it again won't duplicate bindings or overwrite existing files (unless
--force).
Options
| Option | Description |
|---|---|
--model |
Also generate the Eloquent model via make:model. |
--dto |
Force DTO generation, overriding use_dtos config. |
--no-dto |
Skip DTO generation, overriding use_dtos config. |
--force |
Overwrite existing files. |
Nested models
php artisan make:dao Blog/Post
Generates everything under the Blog sub-namespace, e.g. App\DAOs\Blog\PostDAO.
Layer responsibilities
- EloquentRepository — pure Eloquent queries (
find,paginate,create,update,delete). No business logic. - DAO — orchestrates repository calls, wraps DB transactions, maps Models <-> DTOs.
- Service — business logic, validation orchestration, events. Controllers depend on this.
- DTO (optional) — immutable data object returned to controllers instead of raw Models.
Configuration
php artisan vendor:publish --tag=dao-generator-config
Adjust namespaces, paths, naming conventions (prefixes/suffixes per layer), and toggle
use_dtos globally in config/dao-generator.php.
Customizing stubs
php artisan vendor:publish --tag=dao-generator-stubs
Published to stubs/dao/. Edit these to match your team's code style — the generator
prefers published stubs over its built-in defaults.
License
MIT
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 3
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-06-15