定制 danielmabadeje/laravel-dao-generator 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

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 -> EloquentProductRepository inside RepositoryServiceProvider.
  • Registers RepositoryServiceProvider in bootstrap/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

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-06-15

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固