Download the PHP package incoder/laravel-ddd without Composer

On this page you can find all versions of the php package incoder/laravel-ddd. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package laravel-ddd

Incoder Laravel DDD

Reusable Laravel DDD / Clean Architecture building blocks packaged for Composer.

PHP Version Laravel Version

Overview

incoder-ddd provides shared foundations for Laravel applications that use a Domain / Application / Infrastructure split. The package includes:

The package is installable as a standalone Composer library and registers itself through Laravel package auto-discovery.

Developer Manual

For a fuller consumer guide, see docs/DEVELOPER-MANUAL.md.

Package Name

Current composer.json package name:

Requirements

Installation

Install the package in a Laravel application:

Laravel will discover Incoder\DDD\Support\IncoderDDDServiceProvider automatically.

Optional publish steps:

This publishes:

What The Package Actually Assumes

Some features are generic. Some are opinionated and default to conventions already encoded in this package.

Those defaults now live in config/incoder-ddd.php.

Default conventions:

If your application does not follow those conventions, you can override the package defaults in config/incoder-ddd.php. The generic base classes remain reusable even when you disable or replace convention-based scanning.

Core Building Blocks

Domain Entities

Use Entity, AggregateRoot, or AuthenticableAggregateRoot as base classes for domain models.

Confirmed behavior from the codebase:

DTO Base

Incoder\DDD\Application\DTOs\DTOBase extends Spatie\LaravelData\Data and provides toDTO() / toDTOs() helpers for Eloquent models.

Repository Base

Repository contracts extend Incoder\DDD\Domain\Repositories\IRepository. Eloquent implementations can build on:

AppService Base

Incoder\DDD\Application\Services\AppServiceBase provides CRUD-oriented application service helpers and is the base type used by AppService route / OpenAPI / proxy scanning.

The inherited default AppService middleware comes from AppServiceBase:

You can override class-wide route middleware with #[AppServiceMiddleware(...)].

Routing

Controller Attribute Routing

#[RouteAttribute] can be used on controller methods. If no middleware is supplied:

Example:

AppService Auto-Routes

Classes that:

are auto-registered at boot under /app/api/{service}.

Supported patterns:

Permission integration is available through #[RequiresPermission(...)] if your app provides a compatible permission middleware alias such as the one from spatie/laravel-permission.

More detail: docs/features/APPSERVICE-ROUTES.md

OpenAPI / Swagger

The package can generate an OpenAPI spec from auto-registered AppServices and exposes Swagger UI in non-production environments when config('api-docs.enabled') is true.

Default routes:

Generate a spec file:

More detail: docs/features/OPENAPI-DOCS.md

Proxy Generation

TypeScript

Generate TypeScript service proxies and DTO/schema models from the discovered AppServices:

Default output path is resources/js/proxies. You can also override it in config/incoder-ddd.php.

Flutter

Generate Flutter/Dart OpenAPI sources via the OpenAPI Generator CLI:

The Flutter generator expects:

Scaffolding Commands

Create a Domain Model Scaffold

Create Model Only

Create CRUD Around an Existing Model

Important: these commands currently generate into core/... directories and Core\... namespaces in the consuming application.

Reporting

The package includes SSRS reporting support through:

Supported operations:

Required environment variables for reporting:

More detail: docs/features/README-REPORTING.md

Development Notes

Useful checks:

License

MIT


All versions of laravel-ddd with dependencies

PHP Build Version
Package Version
Requires php Version ^8.3
illuminate/auth Version ^12.0 || ^13.0
illuminate/console Version ^12.0 || ^13.0
illuminate/database Version ^12.0 || ^13.0
illuminate/filesystem Version ^12.0 || ^13.0
illuminate/http Version ^12.0 || ^13.0
illuminate/routing Version ^12.0 || ^13.0
illuminate/support Version ^12.0 || ^13.0
ramsey/uuid Version ^4.7 || ^5.0
spatie/laravel-activitylog Version ^4.10
spatie/laravel-data Version ^4.17
symfony/finder Version ^7.0
symfony/process Version ^7.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package incoder/laravel-ddd contains the following files

Loading the files please wait ...