GitHub

php-datatypes-laravel-doctrine

php-datatypes-laravel-doctrine

Persistência de objetos com valores de tipos de dados PHP utilizando Doctrine DBAL - Laravel com configuração automática e sem necessidade de configuração adicional.

php-datatypes-laravel-doctrine

Este pacote permite que um objeto do tipo hradigital/php-datatypes seja declarado como o tipo de um atributo de uma entidade Doctrine. O Doctrine persiste apenas os tipos com os quais é fornecido, pelo que um objeto do tipo EmailAddress , Money ou Address teria de ser declarado como primitivo e convertido manualmente a cada leitura e escrita. Fornece um tipo DBAL do Doctrine por objeto Datatypes, além de um fornecedor de serviços do Laravel que os regista, de modo a que a entidade mantenha o objeto de valor enquanto a base de dados ainda mantém um valor simples, indexável e legível por humanos.

  • Tipos DBAL do Doctrine - um por objeto Datatypes: StrType , EmailAddressType , UrlType , SlugType , DatetimeType , CurrencyType , MoneyType , AddressType e os restantes.
  • Tipos nativos do PHP - NativeDateTimeType , NativeDateTimeImmutableType , NativeDateIntervalType e NativeDateTimeZoneType , portanto, uma entidade contendo \DateTime mapas simples sob a mesma convenção de nomenclatura.
  • Fornecedor de serviços Laravel - descoberto automaticamente, registando cada tipo antes de qualquer EntityManager resolver um mapeamento. Nada para publicar, nada para configurar.
  • Uma regra de nomenclatura : o nome de um tipo do Doctrine é sempre o nome abreviado da própria classe Type.
  • Validação na entrada - uma falha de validação de um Objecto de Valor manifesta-se como um DBAL ConversionException , pelo que um valor inválido é rejeitado em vez de corromper a coluna.
  • Framework opcional - os tipos são tipos DBAL simples, sem dependência de framework; o prestador de serviços é uma conveniência.

O que este pacote não é

  • Não é um fork nem um substituto para hradigital/php-datatypes Depende dele e acrescenta persistência, nada mais. O comportamento, a validação e a API dos Objetos de Valor são inteiramente próprios.
  • Não é um ORM, nem um conjunto de entidades. Contribui com tipos de coluna. As suas entidades, mapeamentos e repositórios permanecem seus.
  • Não é exclusivo do Laravel. Ver Usar fora do Laravel .

Visitar projeto