Directory Structure

Table of contents

Loading...

Introduction

The directory structures of the slim-example-project, slim-api-starter and the slim-starter are based on Standard PHP Package Skeleton, DDD and the Vertical Slice Architecture.

Directory Structure

├── config                   # contains configuration files
│   └── env                  # environment specific configuration files (dev, prod, test etc.)
├── public
│   └── assets               # images, videos, stylesheets, scripts, fonts, audio files
├── resources
│   ├── migrations           # database migrations
│   ├── schema               # database table creation schema
│   ├── seeds                # database seed data
│   └── translations         # translation files
├── src
│   ├── Application          # general (not tied to specific module) top layer
│   │   ├── Middleware 
│   │   └── Responder
│   ├── Common               # contains general project independent utility classes 
│   ├── Domain               # includes general business logic utilities and exceptions
│   │   ├── Exception
│   │   └── Utility
│   ├── Infrastructure       # contains general infrastructure utilities such as query factory 
│   │       ├── Factory
│   │       └── Utility
│   └── Module
│       └── {ModuleX}
│           ├── {Feature}
│           │   ├── Application
│           │   ├── Domain
│           │   └── Infrastructure
│           └── Data         # DTOs
├── templates                # layout and template files for each module 
└── tests
    ├── Fixture              # database content to be added as preparation in test db for integration tests
    ├── TestCase             # contains modules with unit and integration tests
    │   ├── {ModuleX}        
    │   │   └── {Feature}    # test cases for the feature (also contains its provider)
    └── Trait                # utility traits (test setup, database connection, helpers)
^