GitHub
php-datatypes-laravel-doctrine
Persistance des objets de valeur de types de données PHP avec Doctrine DBAL - Configuration automatique Laravel, aucune configuration requise
Doctrine des types de données PHP de Laravel
Ce package permet de déclarer un objet de hradigital/php-datatypes comme type d'un attribut d'entité Doctrine. Doctrine ne conserve que les types fournis par défaut ; autrement, un objet de EmailAddress , Money ou Address devrait être déclaré comme primitif et converti manuellement à chaque lecture et écriture. Il inclut un type DBAL Doctrine par objet Datatypes, ainsi qu'un fournisseur de services Laravel qui les enregistre tous. Ainsi, l'entité contient l'objet valeur tandis que la base de données conserve une valeur simple, indexable et lisible par l'utilisateur.
- Types Doctrine DBAL - un par objet Datatypes :
StrType,EmailAddressType,UrlType,SlugType,DatetimeType,CurrencyType,MoneyType,AddressTypeet le reste. - Types PHP natifs -
NativeDateTimeType,NativeDateTimeImmutableType,NativeDateIntervalTypeetNativeDateTimeZoneType, donc une entité contenant un simple\DateTimemappe sous la même convention de nommage. - Fournisseur de services Laravel : détection automatique, enregistrement de chaque type avant qu’un EntityManager ne résolve un mappage. Aucune publication, aucune configuration.
- Une règle de nommage : le nom d’un type Doctrine est toujours le nom court de la classe Type.
- Validation à l'entrée - l'échec de validation d'un objet valeur apparaît comme une erreur DBAL
ConversionException, de sorte qu'une valeur invalide est rejetée plutôt que de corrompre la colonne. - Sans dépendance à un framework : les types sont des types DBAL simples, sans dépendance à un framework ; le fournisseur de services est une commodité.
Ce que ce paquet n'est pas
- Il ne s'agit ni d'une version dérivée ni d'un remplacement de
hradigital/php-datatypesCe module en dépend et ajoute la persistance, rien de plus. Le comportement, la validation et l'API des objets de valeur sont entièrement propres à 0. - Ce n'est ni un ORM, ni un ensemble d'entités. Il ajoute des types de colonnes. Vos entités, mappings et dépôts restent votre propriété.
- Ce n'est pas réservé à Laravel. Voir Utilisation en dehors de Laravel .
- PHP
- Laravel
- JavaScript
- Doctrine
- Doctrine-orm
- Laravel-package
- Makefile
- Shell