construindo aplicações cli com symfony console

46
Construindo aplicações CLI com Symfony Console Bruno Ricardo Siqueira

Upload: bruno-ricardo-siqueira

Post on 16-Feb-2017

365 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Construindo aplicações CLI com Symfony Console

Construindo aplicações CLI com

Symfony Console

Bruno Ricardo Siqueira

Page 2: Construindo aplicações CLI com Symfony Console

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.

Page 3: Construindo aplicações CLI com Symfony Console

CLI

Page 4: Construindo aplicações CLI com Symfony Console
Page 5: Construindo aplicações CLI com Symfony Console
Page 6: 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...

Page 7: Construindo aplicações CLI com Symfony Console
Page 8: Construindo aplicações CLI com Symfony Console
Page 9: Construindo aplicações CLI com Symfony Console

SHELL SCRIPTING

Page 10: Construindo aplicações CLI com Symfony Console
Page 11: Construindo aplicações CLI com Symfony Console
Page 12: 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;

● ...

Page 13: Construindo aplicações CLI com Symfony Console

APLICAÇÕES CLI

Page 14: Construindo aplicações CLI com Symfony Console

APLICAÇÕES CLI

...

Page 15: Construindo aplicações CLI com Symfony Console

SYMFONY CONSOLE

Page 16: Construindo aplicações CLI com 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

Page 17: Construindo aplicações CLI com Symfony Console

SYMFONY CONSOLE - INSTALAÇÃO

Page 18: Construindo aplicações CLI com Symfony Console

SYMFONY CONSOLE - INSTALAÇÃO

Page 19: Construindo aplicações CLI com Symfony Console
Page 20: Construindo aplicações CLI com Symfony Console

Como queusa

isso ae tio?

Page 21: Construindo aplicações CLI com Symfony Console
Page 22: Construindo aplicações CLI com Symfony Console
Page 23: 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

Page 24: Construindo aplicações CLI com Symfony Console

SYMFONY CONSOLE - ESTILOS

Page 25: Construindo aplicações CLI com Symfony Console

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

Page 26: Construindo aplicações CLI com Symfony Console

SYMFONY CONSOLE - VERBOSIDADE

Page 27: Construindo aplicações CLI com Symfony Console

SYMFONY CONSOLE - ARGUMENTOS

Page 28: Construindo aplicações CLI com Symfony Console

SYMFONY CONSOLE - ARGUMENTOS

Page 29: Construindo aplicações CLI com Symfony Console

SYMFONY CONSOLE - ARGUMENTOS

Page 30: Construindo aplicações CLI com Symfony Console

InputArgument::REQUIRED

InputArgument::OPTIONAL

InputArgument::IS_ARRAY

SYMFONY CONSOLE - ARGUMENTOS

Page 31: Construindo aplicações CLI com Symfony Console

SYMFONY CONSOLE - OPÇÕES

Page 32: Construindo aplicações CLI com Symfony Console

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

Page 33: Construindo aplicações CLI com Symfony Console

SYMFONY CONSOLE - QUESTION HELPER

Page 34: Construindo aplicações CLI com Symfony Console

SYMFONY CONSOLE - FORMATTER HELPER

Page 35: Construindo aplicações CLI com Symfony Console

SYMFONY CONSOLE - PROGRESS BAR HELPER

Page 36: Construindo aplicações CLI com Symfony Console

SYMFONY CONSOLE - PROGRESS BAR HELPER

Page 37: Construindo aplicações CLI com Symfony Console

SYMFONY CONSOLE - TABLE HELPER

Page 38: Construindo aplicações CLI com Symfony Console

SYMFONY CONSOLE - REUTILIZANDO COMANDOS

Page 39: Construindo aplicações CLI com Symfony Console

QUEM ESTÁ UTILIZANDO?

Page 40: Construindo aplicações CLI com Symfony Console

QUEM ESTÁ UTILIZANDO - DRUPAL CONSOLE

Page 41: Construindo aplicações CLI com Symfony Console

QUEM ESTÁ UTILIZANDO - COMPOSER

Page 42: Construindo aplicações CLI com Symfony Console

QUEM ESTÁ UTILIZANDO - ESTATÍSTICAS PACKAGIST

Page 43: Construindo aplicações CLI com Symfony Console

QUEM ESTÁ UTILIZANDO - ESTATÍSTICAS PACKAGIST

Page 44: Construindo aplicações CLI com Symfony Console

PERGUNTAS?

Page 45: Construindo aplicações CLI com Symfony Console

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

Page 46: Construindo aplicações CLI com Symfony Console

THANKS FOR

BEINGHERE!

BRUNO RICARDO SIQUEIRA

@brunoric

Construindo aplicações CLI com

Symfony Console