GitHub

php-datatypes-laravel-doctrine

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 , AddressType et le reste.
  • Types PHP natifs - NativeDateTimeType , NativeDateTimeImmutableType , NativeDateIntervalType et NativeDateTimeZoneType , donc une entité contenant un simple \DateTime mappe 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-datatypes Ce 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 .

Voir le projet