Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Domain Driven Design Bundle Laravel Package

php-ddd/domain-driven-design-bundle

A Laravel bundle for applying domain-driven design: aggregates, entities, value objects, domain events, and repositories with clean separation between domain, application, and infrastructure layers.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. The package targets Laravel applications adopting Domain-Driven Design conventions. It provides a configuration surface rooted at domain_driven_design that Laravel's config repository loads and that the package's service provider consumes. Architecturally this is a convention/config layer, not a runtime framework — it composes with Laravel's container, provider lifecycle, and config caching rather than competing with them. Fit is strong for teams standardizing DDD layering (Domain / Application / Infrastructure) inside a modular monolith. Fit is weak where the team is not actually doing DDD; the package enables conventions but does not enforce them.

Integration feasibility. Low to moderate. Composer install plus config publishing; provider auto-discovery assumed. The v0.1.1 change is a config root rename from php_ddd_domain_driven_design to domain_driven_design. Greenfield integration is trivial. Brownfield integration requires renaming the published config file and updating every config('php_ddd_domain_driven_design.*') reference, then clearing/rebuilding the config cache.

Technical risk. Pre-1.0 (0.1.x) status is the dominant risk: config and API surface are explicitly unstable, and this release is direct evidence — a hard rename with no alias or shim. Risk is concentrated in configuration coupling, not runtime behavior; nothing in the notes suggests database, queue, or event integration exposure. The absence of a backwards-compatible alias meaningfully increases the chance of silent misconfiguration: a missing root key resolves to null, defaults apply quietly, and behavior drifts without an exception.

Key questions. Does the package ship a config migration shim, or only a hard rename? Is there a changelog and upgrade guide, or just release titles? What is the surface area beyond config (artisan scaffolding commands, base classes, container bindings)? Which Laravel and PHP versions are supported? Is there a test suite and CI signal? Who maintains it, and what is the release cadence?

Integration Approach

Stack fit. Strong for Laravel 9/10/11 + PHP 8.1+ shops already comfortable with service providers, config publishing, and artisan. Pairs well with a modular-monolith or "modular Laravel" structure.

Migration path. For existing 0.1.0 consumers: (1) re-publish or rename config/php_ddd_domain_driven_design.php to config/domain_driven_design.php; (2) grep the application, tests, and env/config files for php_ddd_domain_driven_design; (3) run php artisan config:clear locally and config:cache in deploy; (4) verify the root key resolves non-null. For greenfield, install and publish fresh — no migration work.

Compatibility. Backwards-incompatible at the config-key level only; no indication of PHP or Laravel version bumps in this release. Pin to ^0.1.1 and treat every minor bump as potentially breaking until a 1.0 stability commitment exists.

Sequencing. Pin in composer.json → integrate on a non-production branch → add a guard test asserting config('domain_driven_design') is non-null → promote to staging → production with config-cache warmup wired into the deploy pipeline.

Operational Impact

Maintenance. Low runtime footprint (config plus provider), but pre-1.0 churn implies recurring upgrade chores. Budget a small standing allowance per quarter for minor-version breaking changes.

Support. Dependent on upstream maintainer responsiveness; no vendor SLA. If the package becomes load-bearing, pin to a tag and consider an internal fork to insulate against abandonment.

Scaling. Negligible performance impact — configuration is loaded once and cached. Scaling concerns here are organizational (convention adoption across teams), not infrastructural.

Failure modes. The highest-risk failure is silent default fallback when the renamed config key is missing. Secondary: boot-time failure if the provider references a removed key or a stale published config. Tertiary: stale config cache after deploy if config:cache is not rerun. Mitigate with a boot smoke test plus an explicit config-presence assertion in CI.

Ramp-up. Low for Laravel developers; the real learning curve is DDD vocabulary (aggregates, repositories, bounded contexts), not the package. A short internal onboarding doc mapping package conventions to team standards will capture most of the value.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
elsayed85/laravel-api-exceptions
ouhssini/laravel-demo-mode
daworks/ncloud-outbound-mailer-driver
gp247/cms
ignibyte/aic-gates
nexa-merchant/blog
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
cgv/localized-resource