GitHub
php-datatypes-laravel-doctrine
Bewaar PHP-datatype-waardeobjecten met Doctrine DBAL - automatisch geïnjecteerd in Laravel, geen configuratie nodig.
php-datatypes-laravel-doctrine
Dit pakket maakt het mogelijk om een object van het type hradigital/php-datatypes als gedeclareerd type voor een Doctrine Entity-attribuut te gebruiken. Doctrine bewaart alleen de typen die het zelf meelevert, dus een EmailAddress , een Money of een Address zou anders als primitief type gedeclareerd en handmatig geconverteerd moeten worden bij elke lees- en schrijfbewerking. Het pakket levert één Doctrine DBAL-type per Datatypes-object, plus een Laravel Service Provider die ze allemaal registreert, zodat de Entity het Value-object bevat, terwijl de database een eenvoudige, indexeerbare en leesbare waarde behoudt.
- Doctrine DBAL-typen - één per Datatypes-object:
StrType,EmailAddressType,UrlType,SlugType,DatetimeType,CurrencyType,MoneyType,AddressTypeen de rest. - De standaard PHP-typen zijn
NativeDateTimeType,NativeDateTimeImmutableType,NativeDateIntervalTypeenNativeDateTimeZoneType, dus een entiteit die een eenvoudig type\DateTimebevat, wordt volgens dezelfde naamgevingsconventie toegewezen. - Laravel Service Provider - automatisch gedetecteerd, registreert elk type voordat een EntityManager een mapping oplost. Niets te publiceren, niets te configureren.
- Een naamgevingsregel : de naam van een Doctrine-type is altijd de korte naam van de Type-klasse zelf.
- Validatie tijdens het invoeren - een validatiefout van een waardeobject wordt weergegeven als een DBAL
ConversionException, waardoor een ongeldige waarde wordt afgewezen in plaats van de kolom te beschadigen. - Framework-optioneel - de typen zijn standaard DBAL-typen zonder frameworkafhankelijkheid; de serviceprovider is een extraatje.
Wat dit pakket niet is
- Dit is geen fork of vervanging voor
hradigital/php-datatypesHet is ervan afhankelijk en voegt persistentie toe, meer niet. Het gedrag, de validatie en de API van de Value Objects zijn volledig van hen. - Het is geen ORM en ook geen verzameling entiteiten. Het voegt kolomtypen toe. Uw entiteiten, mappings en repositories blijven van u.
- Niet alleen voor Laravel. Zie Gebruik buiten Laravel .
- PHP
- Laravel
- JavaScript
- Doctrine
- Doctrine-orm
- Laravel-package
- Makefile
- Shell