-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adicionando a opção de rodar por linha de comando #10
Conversation
src/Commands/ExportCommand.php
Outdated
|
||
if ($format == 'json') { | ||
$output->writeln($json); | ||
return Command::SUCCESS; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pode ser um return só de sucesso no final do método
$results[] = $result; | ||
} | ||
|
||
$json = json_encode($results); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
aqui faz o encode mas se for xml faz decode, este encode deveria estar então no formato json
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Então, no caso eu faço esse encode para transformar em string e ai poder fazer o decode!
Se tento usar o $results ao invés do $array, ele da um erro de que stdclass não pode ser utilizado.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Excelente PR! Cumpre os requisitos porém tem uns pequenos ajustes pra ser feito o merge
O build no TravisCI tá quebrando, dá um confere, precisa fazer uns ajustes.
Os testes que rodam no Travis podem ser executados local, confere no composer.json que tem o bloco scripts com todos os testes. Tem um alias que agrupa todos os testes em um só que é o que tá sendo utilizado no .travis.yml
@vitormattos consegue me ajudar nas correções do phpstan, confesso que não sei como resolver. |
src/Commands/ExportCommand.php
Outdated
|
||
if ($format == 'xml') { | ||
$xml = $this->toXML($results); | ||
$output->writeln($xml); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Melhorou muito!
Que tal colocar este comando para fora dos if? Ele se repete 2x no código e nos dois pontos faz a mesma coisa, pega o retorno e joga para o output.
Os métodos toXML e toJSON poderiam retornar para uma variável com o mesmo nome, tipo $return.
src/Commands/ExportCommand.php
Outdated
$output->writeln($json); | ||
} | ||
|
||
if ($format == 'xml') { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pensando em uma outra abordagem aqui....
Como o formato já foi validado na linha 64, isto poderia ser resumido usando https://php.net/call_user_func_array.
$return = call_user_func_array([$this, 'to' . strtoupper($format)], [$results]);
Que acha? Assim elimina os if
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
trabalhando nisso
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Que acha destas sugestões?
Acho ótimo! Estou caminhando com o erros do travis e já devo enviar a solução final. |
Se tu rodar local vai conseguir reproduzir os erros. O PHPStan ajuda muito para pegar umas boas práticas. |
Adicionando a opção de rodar por linha de comando
Resolução da
issue
#9Olha eu tava meio enferrujado com PHP, mas acho que ficou bom 😃