Closed lpj145 closed 5 years ago
Exemplo, ao preparar a montagem há algumas verificações e validações que são feitas no momento da construção, se pudêssemos, reaproveitaríamos muitas regras com macros, podendo perguntar o caso, se ele é necessário, se o padrão poderá ser ex: "SEM GTIN"
Assim deixaríamos a comunidade já saber que tipos de macros rodam em cima de cada nó, atributo, e caso eles quisessem poderíamos fazer uma append ou prepend para que aquele objeto fosse tratado mediante o laço da construção pai.
Mostra um exemplo dessas macros para nós Masrcos !
Com certeza, essa contribuição eu darei pro projeto, só preciso deixa-la agnóstica, e também tem como passar os parâmetros desordenados, e não importa que ordem a função seja chamada, é pra funcionar do mesmo jeito.
Só pra demonstrar um pouco, eu criei um fila de atributos principais, lógicos que há mais, mas essa situação já cobre uma necessidade minha.
Nos atributos dos produtos por exemplo, eu criei uma série de regras
Notem que não precisa ser exatamente desta maneira, mas isso se mostrou muito peculiar e útil, dentro dessas regras, várias coisas são reaproveitadas, o que acabou deixando toda a pre construção muito pequena e proveitosa.
aqui o repositório. https://packagist.org/packages/marcosadantas/sped-container
o que achou da ideia ?
Marcos; Estou com um projeto para uma melhoria na Make::class se quizer posso mostrar para você em hangout. Ainda está desatualizado e precisa melhorar. Mas o básico é o seguinte. Cada NODE do XML como a tagide() será movida para uma TRAIT e nessa TRAIT podemos colocar VALIDAÇÕES como você está propondo. Criamos uma classe de validação e na TRAIT estabelecemos os campos e sua estrutura. Isso pode ser feito com ARRAY como você está propondo ou como eu tenho feito com JsonSchema . Como o método recebe um stdClass é muito mas muito mais facil usar um JsonSchema para validar .
vou preparar um código aqui com o que pensei, de uma forma desacoplada pra ficar mais fácil de entender, ai combinamos um.
Certo ei eu te mostro minha ideia usando JsonSchema
Opa, beleza, galera, ao preparar uma api aqui pra mim, eu vie que existe algo que é muito trivial, fácil de fazer, e bom demais pra rodar em cima de documentos speds, que são as execuções de macros, assim eu poderia tirar mais responsabilidade nas montagem e separar regras de limpeza, condição, retornos, para exclusão dependendo que regras fossem passadas, adotei esse modelo aqui e ficou muito legal para construir o xml, inclusive pode se adotar um dicionário interno, onde a api irá obedece-lo de forma padrão na construção e quando alguém quiser implementar de sua maneira o poderá fazer, farei a postagem de algum código mais pra frente, mas fica muito bom.