slash-dw / error-kit
SlashDw structured domain error contracts and reporting hooks for Laravel
v0.0.1
2026-04-28 17:09 UTC
Requires
- php: ^8.5
- illuminate/support: ^13.0
Requires (Dev)
- larastan/larastan: ^3.9
- laravel/pint: ^1.29
- orchestra/testbench: ^11.0
- phpunit/phpunit: ^12.0
README
A Laravel package for structured domain errors.
Requirements
- PHP
^8.5 - Laravel
^13.0
Exact Laravel component constraints are defined in composer.json.
What This Package Provides
- Structured domain exception contract and base class
- Report behavior enum
- Code composer (segment pack/unpack)
- In-memory error code registry
- Exception reporting policy contract and default implementation
Quick Usage
use SlashDw\ErrorKit\Domain\AbstractStructuredDomainException; use SlashDw\ErrorKit\Enums\ReportBehavior; final class OrderCannotBeCancelled extends AbstractStructuredDomainException { public function errorCode(): int { return 1001001; } public function errorSlug(): string { return 'order.cannot_cancel'; } public function developerMessage(): string { return 'Order already shipped.'; } public function userMessageKey(): string { return 'orders.cannot_cancel'; } public function reportBehavior(): ReportBehavior { return ReportBehavior::Warning; } }
Test Status
- PHPUnit: 24 tests / 40 assertions
- PHPStan: clean
- Pint: passed
Dev Commands
composer install ./vendor/bin/phpunit -c phpunit.xml.dist ./vendor/bin/phpstan analyse -c phpstan.neon.dist --memory-limit=1G ./vendor/bin/pint --format agent