Weave Code
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

Contracts Laravel Package

dragon-code/contracts

Dragon Code Contracts provides a lightweight set of PHP interfaces (contracts) you can reuse across any project to standardize key behaviors, improve type-safety, and keep implementations decoupled. Ideal as a shared dependency for packages and applications.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Standardization of Laravel Abstractions: Eliminates inconsistencies in caching, queue handling, and DTO patterns across teams or microservices by enforcing a unified contract layer, reducing context-switching costs.
  • Clean Architecture Adoption: Enables dependency inversion for Laravel projects, allowing teams to implement hexagonal architecture or Domain-Driven Design (DDD) without reinventing interfaces for core systems (e.g., Cache\Store, Queue\ShouldQueue).
  • Accelerated Internal Package Development: Cuts 30–50% of boilerplate for reusable components (e.g., DTOs, job handlers) by providing pre-built interfaces like Dtoable and ShouldBeUnique, speeding up library development.
  • Strategic Tech Stack Alignment: Justifies integration with DragonCode’s ecosystem (e.g., dragon-code/helpers) by offering foundational contracts (e.g., Dtoable) that enable advanced features like serialization without custom work.
  • Build vs. Buy for Abstractions: Shifts resources from maintaining custom contract layers to leveraging a maintained, framework-aligned solution, reducing technical debt and long-term maintenance costs.
  • Modular Monolith Refactoring: Provides a contract-first foundation for decomposing monolithic Laravel apps into independently deployable modules, ensuring interoperability via standardized interfaces.
  • Testability & CI/CD Optimization: Simplifies unit testing by offering mockable interfaces for caching, queues, and HTTP operations, improving test coverage and reducing flaky tests tied to concrete implementations.
  • Future-Proofing for Laravel 11/12: Ensures long-term compatibility with modern Laravel versions, reducing migration risks and aligning with Symfony 6/7 dependencies for enterprise-grade applications.

When to Consider This Package

Adopt this package if:

  • Your Laravel project (v11/12) requires scalable, maintainable abstractions for caching, queues, DTOs, or HTTP operations, and you want to avoid custom interface definitions.
  • You’re implementing clean architecture, DDD, or hexagonal design and need explicit interfaces for domain-driven components (e.g., actions, migrations, job handlers).
  • Your team builds reusable internal packages or modular Laravel services and needs framework-agnostic contracts to ensure consistency across projects.
  • You’re integrating with DragonCode’s ecosystem (e.g., dragon-code/helpers) and require contracts like Dtoable for serialization or other advanced features.
  • You want to reduce boilerplate for Laravel patterns (e.g., rememberForever in caching, job deduplication with ShouldBeUnique) without sacrificing flexibility.
  • Your CI/CD pipeline struggles with flaky tests due to tightly coupled implementations—this package’s interfaces enable easier mocking and isolation.

Look elsewhere if:

  • Your project doesn’t use Laravel or PHP, as the package is Laravel/Symfony-centric with PHP-only interfaces.
  • You need concrete implementations (e.g., Redis cache drivers, database migrations) rather than just interfaces.
  • Your team resists dependency inversion or prefers trait-based solutions over interfaces for flexibility (e.g., Laravel’s built-in ShouldQueue trait).
  • You’re building a public API/library where backward compatibility is critical—the package has no dependents and frequent minor updates, which may introduce breaking changes.
  • You require highly specialized contracts beyond caching/queues/DTOs/HTTP (e.g., domain-specific business rules or legacy system integrations).
  • Your project uses Laravel <11 and risks compatibility gaps with Symfony 6/7 dependencies, as the package actively updates for newer Laravel versions.

How to Pitch It (Stakeholders)

For Executives: *"This package standardizes interfaces for Laravel’s most repetitive patterns—caching, queues, and data transfer—saving thousands of developer hours annually by eliminating redundant abstractions. By adopting these contracts, we can:

  • Reduce technical debt by replacing custom interfaces with maintained, framework-aligned solutions, cutting maintenance costs by 20–30%.
  • Accelerate feature delivery by eliminating boilerplate for DTOs, job handlers, and cache operations, allowing engineers to focus on business logic.
  • Future-proof our architecture with clean abstractions that align with DragonCode’s ecosystem, ensuring compatibility with tools like dragon-code/helpers for serialization and advanced features.
  • Improve code quality with type-safe contracts, reducing runtime errors and improving developer productivity. It’s a zero-risk, high-reward decision: no runtime overhead, pure type hints, and immediate benefits for scalability, maintainability, and team velocity."*

For Engineering/Architecture Teams: *"TheDragonCode’s contracts enable decoupled, testable, and reusable components by providing pre-built interfaces for Laravel’s critical systems. Key benefits include:

  • Dependency Inversion: Swap cache drivers, queue handlers, or HTTP clients without modifying dependent code, enabling modular architecture and microservices decomposition.
  • Testability: Mock interfaces like Cache\Store or ShouldQueue for isolated unit tests, reducing flaky tests and improving CI/CD reliability.
  • Ecosystem Integration: Required for dragon-code/helpers (e.g., Dtoable for serialization), ensuring seamless adoption of DragonCode’s advanced tooling.
  • Clean Architecture: Enforce dependency inversion for actions, migrations, and domain objects, aligning with DDD and hexagonal principles.

Implementation Steps:

  1. Install via Composer: composer require dragon-code/contracts.
  2. Implement interfaces in existing classes (e.g., class MyDto implements Dtoable).
  3. Gain compile-time safety, reduced boilerplate, and consistency across the codebase.
  4. Leverage built-in Laravel 11/12 compatibility with zero configuration.
  5. Future-proof your codebase with contracts that evolve alongside Laravel’s ecosystem.

Ideal for teams adopting modular monoliths, microservices, or clean architecture in Laravel."*

For Developers: *"Stop wasting time defining custom interfaces for DTOs, caching, or queues. This package gives you ready-to-use contracts for:

  • DTOs: Implement Dtoable for automatic serialization with dragon-code/helpers.
  • Caching: Use Cache\Ttl or rememberForever without writing custom logic.
  • Queues: Add ShouldQueue or ShouldBeUnique to jobs for built-in deduplication.
  • HTTP: Standardize domain handling with Http\Builder contracts.

How to Start:

  1. Install: composer require dragon-code/contracts.
  2. Implement interfaces in your classes (e.g., class MyJob implements ShouldQueue).
  3. Benefit from type safety, reduced boilerplate, and immediate alignment with clean architecture.
  4. No breaking changes—fully compatible with Laravel 11/12 and Symfony 6/7.
  5. Future-proof your codebase with maintained, framework-aligned abstractions.

Example Use Case:

// Before: Custom interface for DTOs
interface MyDtoInterface { ... }

// After: Use DragonCode’s contract
class MyDto implements Dtoable { ... }

Result: Faster development, fewer bugs, and easier maintenance—without sacrificing flexibility."*

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.
jayeshmepani/jpl-moshier-ephemeris-php
elnasnato/laraliveui
labrodev/rest-sdk
sampaui/sampaui
babelqueue/php-sdk
facebook/capi-param-builder-php
babelqueue/symfony
hamzi/corewatch
minionfactory/raw-hydrator
hexters/coinpayment
rjcodes/rjcms
act-training/laravel-permissions-manager
alimarchal/laravel-chart-of-accounts
babenkoivan/elastic-scout-driver
mkwebdesign/filament-watchdog-v5
renatomarinho/laravel-page-speed
zedmagdy/filament-business-hours
renatovdemoura/blade-elements-ui
devgeek/beacon-admin
benjamin-rqt/data-watcher-bundle