marcosadantas/sped-container

This package is not installable via Composer 1.x, please make sure you upgrade to Composer 2+. Read more about our Composer 1.x deprecation policy.

Is a library to serialize sped on container

1.7.7 2018-07-27 19:19 UTC

This package is auto-updated.

Last update: 2021-10-15 04:50:44 UTC


README

Essa lib é um container para dados aleatórios, onde imposto regras de um lado e dados do outro ele tentará executar as regras nos respectivos dados.

Instalação
composer require marcosadantas/sped-container
Classes de interesse
AbstractAttribute
SpedContainer
Interface para atributos
SpedAttribute
Como usar
$data = [
  'produto' => [
    'nome' => 'Produto PHP'
  ]
];

class ProdutoAttribute extends AbstractAttribute implements SpedAttribute 
{
   // O container fará a injeção automaticamente
    __invoke(array $items, OutroAttributo $instancia);
}

$regras = [
  ProdutosAttribute::class
]

$spedContainer = new SpedContainer($regras, $data);
$spedContainer->execute();
Desempenho

O container usa solução baseada em reflection e pra isso foi implementado o metódo getConfigCache que retornará o array da configuração atual, caso o guarde num arquivo, o desempenho melhorará significativamente.

Injeção

Basicamente todo atributo só estará disponivel para uso depois de executado suas "regras" no entanto, antes de injetar o container se certifica e executa isto.

AbstractAttribute

Há algumas necessidades conforme implementar a interface, essa classe abstrata acabará com boa parte delas, também ela tem implementada por padrão o uso de traits para:

Precision - numeros precisos
SanitizeString - limpeza de string
DateFormat - Formatação para UTC