PHPackages                             danielmabadeje/laravel-dao-generator - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. danielmabadeje/laravel-dao-generator

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

danielmabadeje/laravel-dao-generator
====================================

Scaffold Service -&gt; DAO -&gt; RepositoryInterface -&gt; EloquentRepository -&gt; Model architecture for Laravel with a single artisan command.

v1.0.0(1mo ago)30MITPHPPHP ^8.1

Since Jun 15Pushed 1mo agoCompare

[ Source](https://github.com/DanielMabadeje/laravel-dao-generator)[ Packagist](https://packagist.org/packages/danielmabadeje/laravel-dao-generator)[ RSS](/packages/danielmabadeje-laravel-dao-generator/feed)WikiDiscussions main Synced 2w ago

READMEChangelogDependencies (5)Versions (2)Used By (0)

Laravel DAO Generator
=====================

[](#laravel-dao-generator)

Scaffold the `Service -> DAO -> RepositoryInterface -> EloquentRepository -> Model` architecture with a single artisan command — and optionally generate a DTO layer too.

Installation
------------

[](#installation)

```
composer require danielmabadeje/laravel-dao-generator --dev
```

The package auto-registers via Laravel's package discovery.

Usage
-----

[](#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` -&gt; `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

[](#options)

OptionDescription`--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

[](#nested-models)

```
php artisan make:dao Blog/Post
```

Generates everything under the `Blog` sub-namespace, e.g. `App\DAOs\Blog\PostDAO`.

Layer responsibilities
----------------------

[](#layer-responsibilities)

- **EloquentRepository** — pure Eloquent queries (`find`, `paginate`, `create`, `update`, `delete`). No business logic.
- **DAO** — orchestrates repository calls, wraps DB transactions, maps Models &lt;-&gt; DTOs.
- **Service** — business logic, validation orchestration, events. Controllers depend on this.
- **DTO** *(optional)* — immutable data object returned to controllers instead of raw Models.

Configuration
-------------

[](#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
-----------------

[](#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
-------

[](#license)

MIT

###  Health Score

37

—

LowBetter than 81% of packages

Maintenance90

Actively maintained with recent releases

Popularity4

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity42

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

46d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/8e6cf3705d015b9759a9fc4d8273b27606c006650c81e23f5ba95bdfa1c00524?d=identicon)[DanielMabadeje](/maintainers/DanielMabadeje)

---

Top Contributors

[![DanielMabadeje](https://avatars.githubusercontent.com/u/44170956?v=4)](https://github.com/DanielMabadeje "DanielMabadeje (3 commits)")

---

Tags

laravelgeneratorscaffoldartisanservicerepositorydao

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/danielmabadeje-laravel-dao-generator/health.svg)

```
[![Health](https://phpackages.com/badges/danielmabadeje-laravel-dao-generator/health.svg)](https://phpackages.com/packages/danielmabadeje-laravel-dao-generator)
```

###  Alternatives

[forjedio/inertia-table

Backend-driven dynamic tables for Laravel + Inertia.js

272.0k](/packages/forjedio-inertia-table)[psalm/plugin-laravel

Psalm plugin for Laravel

3345.3M348](/packages/psalm-plugin-laravel)[laravel/ai

The official AI SDK for Laravel.

1.0k3.2M256](/packages/laravel-ai)[illuminate/queue

The Illuminate Queue package.

21333.0M1.7k](/packages/illuminate-queue)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

255.2k](/packages/aedart-athenaeum)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
