Giter Club home page Giter Club logo

laravel-clean-ddd's Introduction

Laravel Clean Architecture and DDD example

This project is a simple demo applying the following technologies with Laravel

  • Clean Architecture
  • Domain Driven Design
  • Command Bus
  • CQRS

Projects structures

├── Blog
│   ├── Application
│   │   ├── Command
│   │   │   ├── CreateCommentCommandHandler.php
│   │   │   ├── CreatePostCommandHandler.php
│   │   │   ├── UpdateCommentCommandHandler.php
│   │   │   └── UpdatePostCommandHandler.php
│   │   ├── Exception
│   │   │   └── SlugAlreadyExistedException.php
│   │   ├── Payload
│   │   │   ├── CreateCommentPayload.php
│   │   │   ├── CreatePostPayload.php
│   │   │   ├── FindPostPayload.php
│   │   │   ├── GetPostsPayload.php
│   │   │   ├── UpdateCommentPayload.php
│   │   │   └── UpdatePostPayload.php
│   │   ├── Query
│   │   │   ├── FindPostQueryHandler.php
│   │   │   └── GetPostsQueryHandler.php
│   │   └── Repository
│   │       ├── PostQueryInterfaceRepository.php
│   │       └── PostWriteInterfaceRepository.php
│   ├── BlogProvider.php
│   ├── Domain
│   │   ├── Aggregate
│   │   │   ├── CommentCollection.php
│   │   │   └── PostAggregate.php
│   │   ├── Entity
│   │   │   └── CommentEntity.php
│   │   └── ValueObject
│   │       ├── CommentContent.php
│   │       ├── CommentId.php
│   │       ├── PostContent.php
│   │       ├── PostId.php
│   │       ├── PostSlug.php
│   │       └── PostTitle.php
│   ├── Infrastructure
│   │   ├── Model
│   │   │   ├── Comment.php
│   │   │   └── Post.php
│   │   └── Repository
│   │       └── Mysql
│   │           ├── PostQueryRepository.php
│   │           └── PostWriteRepository.php
│   └── Presentation
│       ├── Api
│       │   ├── PostController.php
│       │   └── ViewModel
│       │       ├── CommentViewModel.php
│       │       └── PostViewModel.php
│       ├── Cli
│       └── Http
└── Shared
    ├── Application
    │   └── CommandBusInterface.php
    ├── Domain
    │   ├── Entity
    │   │   └── HasKeyInterface.php
    │   └── ValueObject
    │       ├── IntValue.php
    │       ├── KeyValueCollection.php
    │       └── StringValue.php
    ├── Exception
    │   ├── DomainException.php
    │   ├── ExceptionUtil.php
    │   └── ValueObject
    │       ├── ValueOverMaxException.php
    │       ├── ValueOverMinException.php
    │       └── ValueToLongException.php
    ├── Infrastructure
    │   └── CommandBus.php
    ├── SharedProvider.php
    └── Slug.php

Contributing

Thank you for considering contributing to the example.

License

The example is open-sourced software licensed under the MIT license.

laravel-clean-ddd's People

Contributors

khoinv avatar

Stargazers

 avatar Tuanhm03 avatar Hung Nhat avatar Khoa Phung avatar Lê Minh Tuấn avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.