GitHub

php-datatypes

php-datatypes

DDD-Bausteine für PHP: ein getestetes Trait pro Attribut sowie unveränderliche Werteobjekte vom Typ Str/int/float, Slug, Url, EmailAddress, Money und datetime. Framework-frei, keine Abhängigkeiten von Drittanbietern.

PHP-Datentypen

PHP Datatypes erstellt Ihre Wertobjekte, Entitäten und Aggregate aus vordefinierten, getesteten Traits – einem pro Attribut – wodurch die Klassendefinition für die dazugehörige Geschäftslogik frei bleibt.

Getter geben nach Möglichkeit Wertobjekte anstelle von primitiven Datentypen zurück. Dadurch verfügt jeder Wert über seine eigene Validierung und Normalisierung, anstatt dass sich jeder Aufrufer diese merken muss. Es gibt keine Abhängigkeiten von Drittanbietern außer PHP selbst, sodass diese Werte ohne Framework, HTTP-Anfrage oder Template-Engine funktionieren.

  • AbstractValueObject - die Basis, von der ein Wertobjekt, eine Entität oder ein Aggregat erbt, wodurch es aus einem Array konstruiert wird, eine vollständige Serialisierung ermöglicht und standardmäßig toArray() erhält.
  • Entitätsmerkmale - ein Merkmal pro Attribut ( HasPositiveIntegerIDTrait , HasActiveTrait , HasNameTrait , ...), das jeweils die Typhinweise und die Normalisierung für dieses Attribut enthält.
  • Skalare Datentypen - unveränderliche Str , Integer- und Float-Wrapper, mit einer flüssigen API, die bei jeder Operation eine neue Instanz zurückgibt, anstatt den Wert direkt zu verändern.
  • Web-Datentypen - Slug , Url und EmailAddress , die sich jeweils selbst validieren und normalisieren.
  • Datums- und Zeitdatentypen – Datums- und Zeitwerte, ohne Einbindung einer Datums- und Zeitbibliothek.
  • Ausnahmevokabular – eine typisierte Ausnahme pro Datentyp unter Exceptions\Datatypes\* , sodass ein abgelehnter Wert angibt, was abgelehnt wurde und warum.

Umfang

Dieses Paket enthält Datentypen: Werte, die sich selbst validieren und normalisieren und die jede PHP-Anwendung ohne Framework, HTTP-Anfrage oder Template-Engine verwenden kann. Die Regel „ Keine Abhängigkeiten von Drittanbietern “ ist sowohl eine Bereichs- als auch eine Abhängigkeitsregel.

Das Verhalten, das Dokumente rendert, parst oder zum Ausliefern einer Webseite dient, ist kein Datentyp, sondern befindet sich im Paket hradigital/php-markup . php-markup ist von diesem Paket abhängig – niemals umgekehrt.

Projekt besuchen