Skip to content

zigzagdev/portfolio-backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Laravel DDD API

A Laravel-based API project built with Domain-Driven Design and Clean Architecture principles.
Designed for modularity, testability, and long-term maintainability.

Architecture

This project follows a layered Clean Architecture:

  • Presentation Layer: Controllers, ViewModels
  • Application Layer: UseCases, Commands, DTOs, QueryServiceInterfaces
  • Domain Layer: Entities, Value Objects, RepositoryInterfaces
  • Infrastructure Layer: Eloquent Repositories, QueryServices

API Flow

  1. Controller constructs a Command object from request input.
  2. The Command is passed to a UseCase.
  3. UseCase invokes domain logic and persists data via a Repository.
  4. Resulting Entity is mapped to a DTO.
  5. The DTO is passed to a ViewModel and returned as a JsonResponse.

Tech Stack

  • PHP 8.x / Laravel 10.x
  • MySQL or PostgreSQL
  • PHPUnit (Unit/Feature testing)
  • Laravel Scout + Elasticsearch (optional)

Directory Structure

app/
└── Posts/
    ├── Application/
    │   ├── ApplicationTests/
    │   ├── UseCases/
    │   ├── UseCommands/
    │   ├── Dtos/
    │   └── QueryServiceInterface/
    ├── Domain/
    │   ├── DomainTests/
    │   ├── Entities/
    │   ├── ValueObjects/
    │   └── RepositoryInterfaces/
    ├── Infrastructure/
    │   ├── InfrastructureTests/
    │   ├── Repositories/
    │   └── QueryServices/
    └── Presentation/
        ├── Controllers/
        ├── PresentationTests/
        └── ViewModels/

└── Users/
    ├── Application/
    │   ├── ApplicationTests/
    │   ├── UseCases/
    │   ├── UseCommands/
    │   ├── Dtos/
    │   └── QueryServiceInterface/
    ├── Domain/
    │   ├── DomainTests/
    │   ├── Entities/
    │   ├── ValueObjects/
    │   └── RepositoryInterfaces/
    ├── Infrastructure/
    │   ├── InfrastructureTests/
    │   ├── Repositories/
    │   └── QueryServices/
    └── Presentation/
        ├── Controllers/
        ├── PresentationTests/
        └── ViewModels/

About

Laravel Portfolio with DDD

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages