SlideShare uma empresa Scribd logo
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
Construindo aplicações CLI com Symfony Console
Construindo aplicações CLI com Symfony Console
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...
Construindo aplicações CLI com Symfony Console
Construindo aplicações CLI com Symfony Console
SHELL SCRIPTING
Construindo aplicações CLI com Symfony Console
Construindo aplicações CLI com Symfony Console
● 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
Construindo aplicações CLI com Symfony Console
Como que
usa
isso ae
tio?
Construindo aplicações CLI com Symfony Console
Construindo aplicações CLI com Symfony Console
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
BEING
HERE!
BRUNO RICARDO SIQUEIRA
@brunoric
Construindo aplicações CLI com
Symfony Console

Mais conteúdo relacionado

Mais procurados

Programacao orientada-a-objetos-java
Programacao orientada-a-objetos-javaProgramacao orientada-a-objetos-java
Programacao orientada-a-objetos-java
Renato Sousa
 
Algoritimos. Comamandos de condição e repetição
Algoritimos. Comamandos de condição e repetiçãoAlgoritimos. Comamandos de condição e repetição
Algoritimos. Comamandos de condição e repetição
Ederson Marques
 
Cartao referencia ccs
Cartao referencia ccsCartao referencia ccs
Cartao referencia ccs
Luciano Zica
 
C pic
C picC pic
Migrando para PHP7 - Novidades
Migrando para PHP7 - NovidadesMigrando para PHP7 - Novidades
Migrando para PHP7 - Novidades
Luis Gustavo Almeida
 
Interfaces e polimorfismo
Interfaces e polimorfismoInterfaces e polimorfismo
Interfaces e polimorfismo
Denis L Presciliano
 
Resumo linguagem c para microcontroladores PIC usando MikroC
Resumo linguagem c para microcontroladores PIC usando MikroCResumo linguagem c para microcontroladores PIC usando MikroC
Resumo linguagem c para microcontroladores PIC usando MikroC
Fabio Souza
 
Vim
VimVim
Introducao ao Shell Script
Introducao ao Shell ScriptIntroducao ao Shell Script
Introducao ao Shell Script
Hugo Maia Vieira
 

Mais procurados (9)

Programacao orientada-a-objetos-java
Programacao orientada-a-objetos-javaProgramacao orientada-a-objetos-java
Programacao orientada-a-objetos-java
 
Algoritimos. Comamandos de condição e repetição
Algoritimos. Comamandos de condição e repetiçãoAlgoritimos. Comamandos de condição e repetição
Algoritimos. Comamandos de condição e repetição
 
Cartao referencia ccs
Cartao referencia ccsCartao referencia ccs
Cartao referencia ccs
 
C pic
C picC pic
C pic
 
Migrando para PHP7 - Novidades
Migrando para PHP7 - NovidadesMigrando para PHP7 - Novidades
Migrando para PHP7 - Novidades
 
Interfaces e polimorfismo
Interfaces e polimorfismoInterfaces e polimorfismo
Interfaces e polimorfismo
 
Resumo linguagem c para microcontroladores PIC usando MikroC
Resumo linguagem c para microcontroladores PIC usando MikroCResumo linguagem c para microcontroladores PIC usando MikroC
Resumo linguagem c para microcontroladores PIC usando MikroC
 
Vim
VimVim
Vim
 
Introducao ao Shell Script
Introducao ao Shell ScriptIntroducao ao Shell Script
Introducao ao Shell Script
 

Semelhante a Construindo aplicações CLI com Symfony Console

Workshop Python para Android
Workshop Python para AndroidWorkshop Python para Android
Workshop Python para Android
Rafael Sanches
 
PHP Symfony, Vale A Pena
PHP Symfony, Vale A PenaPHP Symfony, Vale A Pena
PHP Symfony, Vale A Pena
Marcelo Fleury
 
Programação Segura
Programação SeguraProgramação Segura
Programação Segura
Rafael Moreira
 
PHP e seus demônios
PHP e seus demôniosPHP e seus demônios
PHP e seus demônios
Henrique Moody
 
Instalar Ocomon Ubuntu 2
Instalar Ocomon Ubuntu 2Instalar Ocomon Ubuntu 2
Instalar Ocomon Ubuntu 2
Wendell Bento Geraldes
 
WTF Javascript - FrontInRio 2011
WTF Javascript - FrontInRio 2011WTF Javascript - FrontInRio 2011
WTF Javascript - FrontInRio 2011
Leonardo Balter
 
Vim - Um editor onipresente e flexível
Vim - Um editor onipresente e flexívelVim - Um editor onipresente e flexível
Vim - Um editor onipresente e flexível
Gilson Filho
 
PHP-CLI em 7 passos
PHP-CLI em 7 passosPHP-CLI em 7 passos
PHP-CLI em 7 passos
Henrique Moody
 
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdfFrom_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
Rodolpho Concurde
 
Criando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & DockerCriando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & Docker
Giovanni Kenji Shiroma
 
Symfony - PHP pra gente grande
Symfony - PHP pra gente grandeSymfony - PHP pra gente grande
Symfony - PHP pra gente grande
Luã de Souza
 
Cisco ios, via cli – command line interface
Cisco ios, via cli – command line interfaceCisco ios, via cli – command line interface
Cisco ios, via cli – command line interface
Marcos Aurelio
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
guest7a481e8
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
eliezer
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
eliezer
 
M5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-WebM5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-Web
diogoa21
 
Symfony2 Básico
Symfony2 BásicoSymfony2 Básico
Symfony2 Básico
Nécio de Lima Veras
 
Como migrar seu ambiente de desenvolvimento para Linux
Como migrar seu ambiente de desenvolvimento para LinuxComo migrar seu ambiente de desenvolvimento para Linux
Como migrar seu ambiente de desenvolvimento para Linux
Marcelo Sabadini
 
Java script
Java scriptJava script
Escreva aplicações web assíncronas com python3 + tornado
Escreva aplicações web assíncronas com python3 + tornadoEscreva aplicações web assíncronas com python3 + tornado
Escreva aplicações web assíncronas com python3 + tornado
Wilson Júnior
 

Semelhante a Construindo aplicações CLI com Symfony Console (20)

Workshop Python para Android
Workshop Python para AndroidWorkshop Python para Android
Workshop Python para Android
 
PHP Symfony, Vale A Pena
PHP Symfony, Vale A PenaPHP Symfony, Vale A Pena
PHP Symfony, Vale A Pena
 
Programação Segura
Programação SeguraProgramação Segura
Programação Segura
 
PHP e seus demônios
PHP e seus demôniosPHP e seus demônios
PHP e seus demônios
 
Instalar Ocomon Ubuntu 2
Instalar Ocomon Ubuntu 2Instalar Ocomon Ubuntu 2
Instalar Ocomon Ubuntu 2
 
WTF Javascript - FrontInRio 2011
WTF Javascript - FrontInRio 2011WTF Javascript - FrontInRio 2011
WTF Javascript - FrontInRio 2011
 
Vim - Um editor onipresente e flexível
Vim - Um editor onipresente e flexívelVim - Um editor onipresente e flexível
Vim - Um editor onipresente e flexível
 
PHP-CLI em 7 passos
PHP-CLI em 7 passosPHP-CLI em 7 passos
PHP-CLI em 7 passos
 
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdfFrom_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
 
Criando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & DockerCriando Webservice REST com NodeJS, NoSQL & Docker
Criando Webservice REST com NodeJS, NoSQL & Docker
 
Symfony - PHP pra gente grande
Symfony - PHP pra gente grandeSymfony - PHP pra gente grande
Symfony - PHP pra gente grande
 
Cisco ios, via cli – command line interface
Cisco ios, via cli – command line interfaceCisco ios, via cli – command line interface
Cisco ios, via cli – command line interface
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
 
Apostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em LinuxApostila Treinamento AvançAdo Em Linux
Apostila Treinamento AvançAdo Em Linux
 
M5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-WebM5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-Web
 
Symfony2 Básico
Symfony2 BásicoSymfony2 Básico
Symfony2 Básico
 
Como migrar seu ambiente de desenvolvimento para Linux
Como migrar seu ambiente de desenvolvimento para LinuxComo migrar seu ambiente de desenvolvimento para Linux
Como migrar seu ambiente de desenvolvimento para Linux
 
Java script
Java scriptJava script
Java script
 
Escreva aplicações web assíncronas com python3 + tornado
Escreva aplicações web assíncronas com python3 + tornadoEscreva aplicações web assíncronas com python3 + tornado
Escreva aplicações web assíncronas com python3 + tornado
 

Mais de Bruno Ricardo Siqueira

Managing e commerce systems codebase with git
Managing e commerce systems codebase with gitManaging e commerce systems codebase with git
Managing e commerce systems codebase with git
Bruno Ricardo Siqueira
 
TDC SP 2015 - PHP7: better & faster
TDC SP 2015 - PHP7: better & fasterTDC SP 2015 - PHP7: better & faster
TDC SP 2015 - PHP7: better & faster
Bruno Ricardo Siqueira
 
TDC SP 2015 - PHP7: melhor e mais rápido
TDC SP 2015 - PHP7: melhor e mais rápidoTDC SP 2015 - PHP7: melhor e mais rápido
TDC SP 2015 - PHP7: melhor e mais rápido
Bruno Ricardo Siqueira
 
Fluxo de desenvolvimento de software utilizando Git
Fluxo de desenvolvimento de software utilizando GitFluxo de desenvolvimento de software utilizando Git
Fluxo de desenvolvimento de software utilizando Git
Bruno Ricardo Siqueira
 
Impulsionando sua presença Online
Impulsionando sua presença OnlineImpulsionando sua presença Online
Impulsionando sua presença Online
Bruno Ricardo Siqueira
 
Desenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando DockerDesenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando Docker
Bruno Ricardo Siqueira
 

Mais de Bruno Ricardo Siqueira (6)

Managing e commerce systems codebase with git
Managing e commerce systems codebase with gitManaging e commerce systems codebase with git
Managing e commerce systems codebase with git
 
TDC SP 2015 - PHP7: better & faster
TDC SP 2015 - PHP7: better & fasterTDC SP 2015 - PHP7: better & faster
TDC SP 2015 - PHP7: better & faster
 
TDC SP 2015 - PHP7: melhor e mais rápido
TDC SP 2015 - PHP7: melhor e mais rápidoTDC SP 2015 - PHP7: melhor e mais rápido
TDC SP 2015 - PHP7: melhor e mais rápido
 
Fluxo de desenvolvimento de software utilizando Git
Fluxo de desenvolvimento de software utilizando GitFluxo de desenvolvimento de software utilizando Git
Fluxo de desenvolvimento de software utilizando Git
 
Impulsionando sua presença Online
Impulsionando sua presença OnlineImpulsionando sua presença Online
Impulsionando sua presença Online
 
Desenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando DockerDesenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando Docker
 

Construindo aplicações CLI com Symfony Console