PHPackages                             jmsr/ddd-laravel - 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. jmsr/ddd-laravel

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

jmsr/ddd-laravel
================

CRUD assistant to create DDD classes and dependency injections

1.2.0(4y ago)113mitPHPPHP &gt;=5.3.0

Since Dec 18Pushed 4y ago1 watchersCompare

[ Source](https://github.com/josemi777/ddd-laravel)[ Packagist](https://packagist.org/packages/jmsr/ddd-laravel)[ RSS](/packages/jmsr-ddd-laravel/feed)WikiDiscussions main Synced today

READMEChangelog (3)Dependencies (1)Versions (7)Used By (0)

[![Logo DDD Laravel](/assets/images/ddd_laravel.png)](/assets/images/ddd_laravel.png)

DDD Laravel
===========

[](#ddd-laravel)

CRUD wizard for creating DDD classes and dependency injections.

This library is designed to add CRUD commands of elements with DDD structure in your [Laravel](https://laravel.com/) project. These commands are used by "php artisan" (you can get a list of them using `php artisan`) and are as follows:

- make-ddd
    - [make-ddd:dump-dependencies](#dump-dependencies)
    - [make-ddd:end-point](#create-an-endpoint)
    - [make-ddd:injection](#create-an-injection)
    - [make-ddd:interface](#create-an-interface)
    - [make-ddd:thing](#create-thing)
    - [make-ddd:update-injections](#update-injections)

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

[](#installation)

You can install it using [composer](https://getcomposer.org/) with next command, or simply adding `jmsr/ddd-laravel` to your composer.json file.

```
composer require jmsr/ddd-laravel
```

Commands
--------

[](#commands)

### Dump dependencies

[](#dump-dependencies)

```
php artisan make-ddd:dump-dependencies
```

This command automatically creates the necessary relationships, in Laravel, between constructors and dependencies that are reflected in the `src/config/injections.yml` file.

Example of relations for the `src/config/injections.yml` file:

```
TestOneRepository:
    class: App\src\Infrastructure\Repository\Test\TestOneRepository

TestTwoRepository:
    class: App\src\Infrastructure\Repository\TestTwoRepository

TestService:
    class: App\src\Infrastructure\Service\Test\TestService
    neededClass:
        - '@TestOneRepository'
        - '@TestTwoRepository'
        - App\src\Infrastructure\Repository\TestThreeRepository
```

### Create an Endpoint

[](#create-an-endpoint)

```
php artisan bashmake-ddd:end-point
```

With this command you can automatically create the endpoints of your application, based on the usecases created. You just need to follow the simple guide that will ask you questions after executing the command.

You can create an endpoint passing UseCase route by command line parameter:

```
php artisan bashmake-ddd:end-point --usecase={complete route of the UseCase}
```

The default values to create the endpoint are the following (you can change them during the executting of assistance):

- $route\_name (null): You can define a direct name for the route, just as Laravel routes allow.
- $method (post): Allowed method to call the endpoint, you can set multiple methods, separated by commas. (example: post, get, put).
- $url (null): Path to call the endpoint, if the value is null it will be generated automatically based on the name of the UseCase.
- $function (execute): Endpoint function that will be used by default when calling the endpoint (this default value is "execute").
- $file (web): For which Laravel routes file the endpoint will be created, the two options are "web" or "api".

### Create an Injection

[](#create-an-injection)

```
php artisan bashmake-ddd:injection
```

Just run this command and the wizard will guide you to create all the injections you need on any of the DDD elements that you have defined in the `src/Application`, `src/Domain` and `src/Infrastructure` directories of your Laravel project .

> It is recommended that all the existing elements in your `src` directories have been generated with the [make-ddd:thing](#create-thing) command of this plugin.

### Create an Interface

[](#create-an-interface)

```
php artisan make-ddd:interface
```

Just create an interface in the directory space `src/Application/Domain`

### Create Thing

[](#create-thing)

```
php artisan make-ddd:thing
```

With this command we can create several types of elements given in DDD architecture, which are `usecase`,` service`, `repository` and` model`. In the case of creating a service or a repository, an associated interface will be created automatically in the `src / Application` directory.

### Update Injections

[](#update-injections)

```
php artisan make-ddd:update-injections
```

Just run this command and the plugin will read all the classes in your `src` directory for constructor dependencies and insert the new dependencies into your project's `src/config/injection.yml` file, in the correct format.

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity49

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

Every ~3 days

Total

6

Last Release

1590d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/efa05db28f4657747bfcb98f2858b74a903e1a4297a9583e54638bd89057f29d?d=identicon)[josemi777](/maintainers/josemi777)

---

Top Contributors

[![josemi777](https://avatars.githubusercontent.com/u/17159050?v=4)](https://github.com/josemi777 "josemi777 (22 commits)")

### Embed Badge

![Health badge](/badges/jmsr-ddd-laravel/health.svg)

```
[![Health](https://phpackages.com/badges/jmsr-ddd-laravel/health.svg)](https://phpackages.com/packages/jmsr-ddd-laravel)
```

###  Alternatives

[orchestra/canvas

Code Generators for Laravel Applications and Packages

21017.2M158](/packages/orchestra-canvas)[lullabot/drainpipe

An automated build tool to allow projects to have a set standardized operations scripts.

41716.4k2](/packages/lullabot-drainpipe)[netgen/content-browser

Netgen Content Browser is a Symfony bundle that provides an interface which selects items from any kind of backend and returns the IDs of selected items back to the calling code.

14112.1k8](/packages/netgen-content-browser)

PHPackages © 2026

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