GitHub
php-exceptions
Semantische, HTTP-conforme domeinuitzonderingen voor PHP 8.1+ DDD-applicaties - framework-onafhankelijk, geen runtime-afhankelijkheden
php-uitzonderingen
Een zorgvuldig samengestelde set herbruikbare, semantische domeinuitzonderingen voor Domain-Driven Design PHP-applicaties. De namen zijn gebaseerd op de HTTP 4XX/5XX-families, omdat die terminologie algemeen bekend is. De uitzonderingen worden echter gegenereerd op de domeinlaag, buiten elk transportmechanisme, en aan de grens vertaald naar een HTTP-antwoord, RPC-fout, CLI-exit of deadletter-bericht in de wachtrij. Het genereren van de juiste uitzondering maakt deel uit van je domeintaal, terwijl een generieke InvalidArgumentException die taal verstoort. Framework-agnostisch, zonder runtime-afhankelijkheden buiten de PHP-standaardbibliotheek, voor elk PHP 8.1+-project.
- Clientuitzonderingen - fouttypen van de aanroeper, afgestemd op de 4XX-reeks, van
BadRequestExceptiontot en metUnavailableForLegalReasonsException, elk met een standaardbericht en statuscode. - Serveruitzonderingen - systeemfouttypen die overeenkomen met de 5XX-familie, van
InternalServerErrorExceptiontot en metLoopDetectedException. -
AbstractBaseException- de gemeenschappelijke basis, die de native\DomainExceptionvan PHP uitbreidt, zodat één enkelecatchalles in dit pakket omvat. -
Request\RequestFailureException- gestructureerde validatiefouten per veld, voor één afgekeurde lading met diverse oorzaken. - Uitbreiding op basis van intentie - elk type is bedoeld om te worden uitgebreid met een eigen, benoemde uitzondering, zodat aanroepers de bredere intentie nog steeds kunnen opvangen.
Vereisten
| Afhankelijkheid | Versie |
|---|---|
| PHP | ^8.1 |
Installatie
composer require hradigital/php-exceptions
Gebruik
Elke uitzondering in dit pakket erft van AbstractBaseException , dat zelf weer een uitbreiding is van PHP's native \DomainException Elke subklasse wordt geleverd met een zinvol standaardbericht en een HTTP-compatibele statuscode ( $code ).
use HraDigital\Components\Exceptions\Client\NotFoundException;
throw new NotFoundException('User #42 does not exist.');
- PHP
- Exception-handling
- Exceptions