GitHub

php-exceptions

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 BadRequestException tot en met UnavailableForLegalReasonsException , elk met een standaardbericht en statuscode.
  • Serveruitzonderingen - systeemfouttypen die overeenkomen met de 5XX-familie, van InternalServerErrorException tot en met LoopDetectedException .
  • AbstractBaseException - de gemeenschappelijke basis, die de native \DomainException van PHP uitbreidt, zodat één enkele catch alles 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

Project bezoeken