GitHub

php-datatypes

php-datatypes

Blocos de construção DDD para PHP: um Trait testado por atributo, além de objetos de valor imutáveis do tipo Str/int/float, Slug, Url, EmailAddress, Money e datetime. Sem necessidade de frameworks ou dependências de terceiros.

Tipos de dados PHP

O PHP Datatypes constrói os seus objetos de valor, entidades e agregados a partir de características predefinidas e testadas - uma para cada atributo - deixando a definição da classe livre para a lógica de negócio a ela associada.

Os getters devolvem objetos de valor em vez de tipos primitivos sempre que possível, de modo que um valor transporta a sua própria validação e normalização, em vez de cada chamador ter de o decorar. Não existe qualquer dependência de terceiros para além do próprio PHP, pelo que estes valores funcionam sem uma framework, um pedido HTTP ou um mecanismo de templates.

  • AbstractValueObject - a base que um Objecto de Valor, Entidade ou Agregado estende, permitindo a sua construção a partir de um array, serialização completa e toArray() out-of-the-box.
  • Características da Entidade - uma característica por atributo ( HasPositiveIntegerIDTrait , HasActiveTrait , HasNameTrait , ...), cada uma contendo as dicas de tipo e a normalização para esse atributo.
  • Tipos de dados escalares - wrappers imutáveis Str números inteiros e pontos flutuantes, com uma API fluente que devolve uma nova instância em cada operação, em vez de modificar o valor no local.
  • Tipos de dados Web - Slug , Url e EmailAddress , cada um validando-se e normalizando-se.
  • Tipos de dados datetime - valores de data e hora, sem necessidade de utilizar uma biblioteca datetime.
  • Vocabulário de exceção - uma exceção tipada por tipo de dados em Exceptions\Datatypes\* , de modo que um valor rejeitado indica o que foi rejeitado e porquê.

Âmbito

Este pacote contém tipos de dados: valores que se validam e normalizam automaticamente, e que qualquer aplicação PHP pode utilizar sem uma framework, um pedido HTTP ou um mecanismo de templates. A regra " Sem dependências de terceiros " é tanto uma regra de âmbito como uma regra de dependência.

O comportamento que renderiza, analisa documentos ou existe para servir uma página web não é um tipo de dados e reside em hradigital/php-markup . O php-markup depende deste pacote - nunca o contrário.

Visitar projeto