Helper Term


1Apresentação

Este helper facilita o gerenciamento de terminais (TTY) na escrita de scripts de linha de comando.

O objeto \Temma\Utils\Term oferece métodos estáticos.


2input()

Este método estático recupera o texto digitado pelo usuário.

Assinatura do método:

input() : string

Exemplo:

use \Temma\Utils\Term as TµTerm;

print("What is your name?\n");
$name = TµTerm::input();
print("Hello '$name'\n");

3password()

Este método estático recupera o texto digitado pelo usuário, sem que o texto apareça na tela.

Assinatura do método:

password() : string

Exemplo:

use \Temma\Utils\Term as TµTerm;

print("Please enter your password\n");
$pwd = TµTerm::password();
if (mb_strlen($pwd) < 12)
    print("Your password is too short\n");

4clear()

Limpa a tela.

Assinatura do método:

clear() : void

Exemplo:

\Temma\Utils\Term::clear();

5clearFromCursor()

Limpa a tela a partir da posição atual do cursor.

Assinatura do método:

clearFromCursor() : void

Exemplo:

\Temma\Utils\Term::clearFromCursor();

6reset()

Limpa a tela e reinicia sua configuração. O histórico de exibição é perdido.

Assinatura do método:

reset() : void

Exemplo:

\Temma\Utils\Term::reset();

7clearLine()

Limpa a linha em que o cursor está posicionado. O cursor é reposicionado no início da linha.

Assinatura do método:

clearLine() : void

Exemplo:

\Temma\Utils\Term::clearLine();

8clearLineFromCursor()

Limpa a linha atual a partir da posição do cursor.

Assinatura do método:

clearLineFromCursor() : void

Exemplo:

\Temma\Utils\Term::clearLineFromCursor();

9hideCursor()

Oculta o cursor.

Assinatura do método:

hideCursor() : void

Exemplo:

\Temma\Utils\Term::hideCursor();

10showCursor()

Exibe o cursor.

Assinatura do método:

showCursor() : void

Exemplo:

\Temma\Utils\Term::showCursor();

11saveCursor()

Salva a posição atual do cursor (para que ela possa ser restaurada depois com o método restoreCursor()).

Assinatura do método:

saveCursor() : void

Exemplo:

\Temma\Utils\Term::saveCursor();

12restoreCursor()

Restaura a posição do cursor, previamente salva com o método saveCursor().

Assinatura do método:

restoreCursor() : void

Exemplo:

\Temma\Utils\Term::restoreCursor();

13moveCursorHome()

Move o cursor para o canto superior esquerdo (posição 0,0) do terminal.

Assinatura do método:

moveCursorHome() : void

Exemplo:

\Temma\Utils\Term::moveCursorHome();

14moveCursorTo()

Move o cursor para as coordenadas indicadas.

Assinatura do método:

moveCursorTo(int $x, int $y) : void

Exemplo:

\Temma\Utils\Term::moveCursorTo(17, 4);

15moveCursorLineStart()

Move o cursor para o início da linha atual.

Assinatura do método:

moveCursorLineStart() : void

Exemplo:

\Temma\Utils\Term::moveCursorLineStart();

16moveCursorUp()

Move o cursor para cima pelo número de linhas passado como parâmetro (1 linha por padrão).

Assinatura do método:

moveCursorUp(int $rows=1) : void

Exemplo:

use \Temma\Utils\Term as TµTerm;

// move uma linha para cima
TµTerm::moveCursorUp();
// move três linhas para cima
TµTerm::moveCursorUp(3);

17moveCursorDown()

Move o cursor para baixo pelo número de linhas passado como parâmetro (1 linha por padrão).

Assinatura do método:

moveCursorDown(int $rows=1) : void

Exemplo:

use \Temma\Utils\Term as TµTerm;

// move uma linha para baixo
TµTerm::moveCursorDown();
// move três linhas para baixo
TµTerm::moveCursorDown(3);

18moveCursorRight()

Move o cursor para a direita pelo número de colunas passado como parâmetro (1 coluna por padrão).

Assinatura do método:

moveCursorRight(int $columns=1) : void

Exemplo:

use \Temma\Utils\Term as TµTerm;

// move uma coluna para a direita
TµTerm::moveCursorRight();
// move três colunas para a direita
TµTerm::moveCursorRight(3);

19moveCursorLeft()

Move o cursor para a esquerda pelo número de colunas passado como parâmetro (1 coluna por padrão).

Assinatura do método:

moveCursorLeft(int $columns=1) : void

Exemplo:

use \Temma\Utils\Term as TµTerm;

// move uma coluna para a esquerda
TµTerm::moveCursorLeft();
// move três colunas para a esquerda
TµTerm::moveCursorLeft(3);

20getCursorPosition()

Este método retorna a posição atual do cursor.

Assinatura do método:

getCursorPosition() : array

Exemplo:

use \Temma\Utils\Term as TµTerm;

[$x, $y] = TµTerm::getCursorPosition();

21getScreenSize()

Este método retorna o tamanho da tela (número de colunas e linhas).

Assinatura do método:

getScreenSize(bool $force=false) : array

Parâmetro:

  • $force: true para forçar a obtenção (sem usar o cache). Desnecessário na maioria das vezes, pois o objeto atualiza os valores em cache quando o terminal é redimensionado.

Exemplo:

use \Temma\Utils\Term as TµTerm;

[$width, $height] = TµTerm::getScreenSize();