marcosadantas/sped-container

Is a library to serialize sped on container

1.7.7 2018-07-27 19:19 UTC

This package is auto-updated.

Last update: 2024-04-15 10:29:33 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