GitHub
php-datatypes-laravel-doctrine
PHP-Datentypen-Wertobjekte mit Doctrine DBAL speichern – Laravel-Autowiring, keine Konfiguration erforderlich
php-Datentypen-Laravel-Doktrin
Dieses Paket ermöglicht es, ein Objekt vom hradigital/php-datatypes als deklarierten Typ eines Doctrine-Entity-Attributs festzulegen. Doctrine speichert nur die mitgelieferten Typen. Andernfalls müssten EmailAddress , Money oder Address als primitive Datentypen deklariert und bei jedem Lese- und Schreibvorgang manuell konvertiert werden. Das Paket enthält einen Doctrine-DBAL-Typ pro Datatypes-Objekt sowie einen Laravel-Service-Provider, der alle Typen registriert. Dadurch speichert die Entity das Wertobjekt, während die Datenbank weiterhin einen einfachen, indizierbaren und lesbaren Wert speichert.
- Doctrine DBAL-Typen - einer pro Datatypes-Objekt:
StrType,EmailAddressType,UrlType,SlugType,DatetimeType,CurrencyType,MoneyType,AddressTypeund der Rest. - Native PHP-Typen -
NativeDateTimeType,NativeDateTimeImmutableType,NativeDateIntervalTypeundNativeDateTimeZoneType, sodass eine Entität, die eine einfache\DateTime-Map enthält, unter der gleichen Namenskonvention fällt. - Laravel-Service-Provider – wird automatisch erkannt und registriert jeden Typ, bevor ein EntityManager eine Zuordnung auflöst. Nichts zu veröffentlichen, nichts zu konfigurieren.
- Eine Namensregel – der Name eines Doctrine-Typs ist immer der Kurzname der Typklasse selbst.
- Validierung beim Eingang - ein Validierungsfehler eines Wertobjekts wird als DBAL
ConversionExceptionangezeigt, sodass ein ungültiger Wert abgelehnt wird, anstatt die Spalte zu beschädigen. - Framework-optional - die Typen sind einfache DBAL-Typen ohne Framework-Abhängigkeit; der Service Provider ist eine Komfortfunktion.
Was dieses Paket nicht beinhaltet
- Es handelt sich weder um eine Abspaltung noch um einen Ersatz für
hradigital/php-datatypesEs baut darauf auf und fügt Persistenz hinzu, nicht mehr. Das Verhalten, die Validierung und die API der Wertobjekte sind vollständig eigenständig. - Kein ORM und keine Sammlung von Entitäten. Es stellt Spaltentypen bereit. Ihre Entitäten, Mappings und Repositories bleiben Ihre.
- Nicht nur für Laravel. Siehe Verwendung außerhalb von Laravel .
- PHP
- Laravel
- JavaScript
- Doctrine
- Doctrine-orm
- Laravel-package
- Makefile
- Shell