Construindo aplicações CLI com
Symfony Console
Bruno Ricardo Siqueira
Bruno Ricardo Siqueira
Desenvolvedor web e
evangelista PHP no Brasil.
Entusiasta Docker.
Apaixonado por Git.
Trabalhando com internet há
8 anos, Bacharel em Sistemas
da Informação formado pelo
ICMC - USP, trabalhando
atualmente na empresa CI&T,
desempenhando o papel de
Engenheiro de Software.
CLI
sh
Thompson shell
(Ken Thompson)sh
Bourne Shell
(Stephen Bourne)
bash
Bourne Again Shell
(Brian Fox)
Zsh
(Paul Falstad)
● ash - Almquist shell (Kenneth Almquist)
● dash - Debian Almquist shell
● ksh - Korn shell (David Korn)
● csh, es, scsh, wish...
SHELL SCRIPTING
● Automação de tarefas;
● Prototipagem rápida;
● Wrappers;
● ...
SHELL SCRIPTING
● Diferentes
interpretadores;
● Windows;
● Reutilização em outras
linguagens;
● ...
APLICAÇÕES CLI
APLICAÇÕES CLI
...
SYMFONY CONSOLE
● PHP FTW!!!!1111um;
● Componente do Symfony Framework;
● Pode, assim como outros componentes do Symfony
Framework, ser utilizado em separado;
● É uma espécie de Framework para aplicações CLI;
● ...
SYMFONY CONSOLE
SYMFONY CONSOLE - INSTALAÇÃO
SYMFONY CONSOLE - INSTALAÇÃO
Como queusa
isso ae tio?
initialize() (opcional)
Executado antes do interact() e do execute(). Utilizado
principalmente para inicializar variáveis
interact() (opcional)
Executado depois initialize() e antes do execute(). Utilizado
para checar se opções/argumentos estão faltando e solicitar ao
usuário os seus valores.
execute() (requerido)
Executado depois do interact() e initialize(). Contém a lógica
que se quer executar com o comando.
SYMFONY CONSOLE - CICLO DE VIDA
SYMFONY CONSOLE - ESTILOS
OutputInterface::VERBOSITY_QUIET -q or --quiet
OutputInterface::VERBOSITY_NORMAL
OutputInterface::VERBOSITY_VERBOSE -v
OutputInterface::VERBOSITY_VERY_VERBOSE -vv
OutputInterface::VERBOSITY_DEBUG -vvv
SYMFONY CONSOLE - VERBOSIDADE
SYMFONY CONSOLE - VERBOSIDADE
SYMFONY CONSOLE - ARGUMENTOS
SYMFONY CONSOLE - ARGUMENTOS
SYMFONY CONSOLE - ARGUMENTOS
InputArgument::REQUIRED
InputArgument::OPTIONAL
InputArgument::IS_ARRAY
SYMFONY CONSOLE - ARGUMENTOS
SYMFONY CONSOLE - OPÇÕES
SYMFONY CONSOLE - OPÇÕES
InputOption::VALUE_IS_ARRAY --dir=/foo --dir=/bar
InputOption::VALUE_NONE --yell
InputOption::VALUE_REQUIRED --iterations=5
InputOption::VALUE_OPTIONAL --yell or --yell=loud
SYMFONY CONSOLE - QUESTION HELPER
SYMFONY CONSOLE - FORMATTER HELPER
SYMFONY CONSOLE - PROGRESS BAR HELPER
SYMFONY CONSOLE - PROGRESS BAR HELPER
SYMFONY CONSOLE - TABLE HELPER
SYMFONY CONSOLE - REUTILIZANDO COMANDOS
QUEM ESTÁ UTILIZANDO?
QUEM ESTÁ UTILIZANDO - DRUPAL CONSOLE
QUEM ESTÁ UTILIZANDO - COMPOSER
QUEM ESTÁ UTILIZANDO - ESTATÍSTICAS PACKAGIST
QUEM ESTÁ UTILIZANDO - ESTATÍSTICAS PACKAGIST
PERGUNTAS?
http://symfony.com/doc/current/components/console/index.html
http://symfony.com/doc/current/components/console/single_command_tool.html
http://symfony.com/doc/current/components/console/changing_default_command.html
http://symfony.com/doc/current/components/console/events.html
http://symfony.com/doc/current/components/console/console_arguments.html
https://www.talater.com/symfony_console_component/
http://www.sitepoint.com/command-line-php-using-symfony-console/
http://gnugat.github.io/2014/04/09/sf2-console-component-by-example.html
REFERÊNCIAS
THANKS FOR
BEINGHERE!
BRUNO RICARDO SIQUEIRA
@brunoric
Construindo aplicações CLI com
Symfony Console