Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yii2
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
PSDI Army
yii2
Commits
f1b62a47
Commit
f1b62a47
authored
Feb 01, 2013
by
Carsten Brandt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Move console color helper back to console
Planning a view structure in there, not sure if naming should be view or widget yet.
parent
debba898
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
95 additions
and
85 deletions
+95
-85
View.php
framework/console/View.php
+95
-85
No files found.
framework/
util/ConsoleHelper
.php
→
framework/
console/View
.php
View file @
f1b62a47
<?php
<?php
/**
/**
*
ConsoleHelper
class file.
*
View
class file.
*
*
* @link http://www.yiiframework.com/
* @link http://www.yiiframework.com/
* @copyright Copyright © 2008 Yii Software LLC
* @copyright Copyright © 2008 Yii Software LLC
* @license http://www.yiiframework.com/license/
* @license http://www.yiiframework.com/license/
*/
*/
namespace
yii\util
;
namespace
yii\console
;
// todo define how subclassing will work
// todo add a run() or render() method
// todo test this on all kinds of terminals, especially windows (check out lib ncurses)
// todo not sure if all methods should be static
// todo subclass DetailView
// todo subclass GridView
// todo more subclasses
/**
/**
* Console
Helper provides additional unility functions for console applications.
* Console
View is the base class for console view components
*
*
*
@author Carsten Brandt <mail@cebe.cc>
*
A console view provides functionality to create rich console application by allowing to format output
*
@author Alexander Makarov <sam@rmcreative.ru>
*
by adding color and font style to it.
*
*
* @author Carsten Brandt <mail@cebe.cc>
* @since 2.0
* @since 2.0
*/
*/
class
ConsoleColor
class
View
extends
\yii\base\Component
{
{
const
FG_
COLOR_
BLACK
=
30
;
const
FG_BLACK
=
30
;
const
FG_
COLOR_
RED
=
31
;
const
FG_RED
=
31
;
const
FG_
COLOR_
GREEN
=
32
;
const
FG_GREEN
=
32
;
const
FG_
COLOR_
YELLOW
=
33
;
const
FG_YELLOW
=
33
;
const
FG_
COLOR_
BLUE
=
34
;
const
FG_BLUE
=
34
;
const
FG_
COLOR_
PURPLE
=
35
;
const
FG_PURPLE
=
35
;
const
FG_C
OLOR_C
YAN
=
36
;
const
FG_CYAN
=
36
;
const
FG_
COLOR_
GREY
=
37
;
const
FG_GREY
=
37
;
const
BG_
COLOR_
BLACK
=
40
;
const
BG_BLACK
=
40
;
const
BG_
COLOR_
RED
=
41
;
const
BG_RED
=
41
;
const
BG_
COLOR_
GREEN
=
42
;
const
BG_GREEN
=
42
;
const
BG_
COLOR_
YELLOW
=
43
;
const
BG_YELLOW
=
43
;
const
BG_
COLOR_
BLUE
=
44
;
const
BG_BLUE
=
44
;
const
BG_
COLOR_
PURPLE
=
45
;
const
BG_PURPLE
=
45
;
const
BG_C
OLOR_C
YAN
=
46
;
const
BG_CYAN
=
46
;
const
BG_
COLOR_
GREY
=
47
;
const
BG_GREY
=
47
;
const
TEXT_
BOLD
=
1
;
const
BOLD
=
1
;
const
TEXT_
ITALIC
=
3
;
const
ITALIC
=
3
;
const
TEXT_
UNDERLINE
=
4
;
const
UNDERLINE
=
4
;
const
TEXT_
BLINK
=
5
;
const
BLINK
=
5
;
const
TEXT_
NEGATIVE
=
7
;
const
NEGATIVE
=
7
;
const
TEXT_
CONCEALED
=
8
;
const
CONCEALED
=
8
;
const
TEXT_
CROSSED_OUT
=
9
;
const
CROSSED_OUT
=
9
;
const
TEXT_
FRAMED
=
51
;
const
FRAMED
=
51
;
const
TEXT_
ENCIRCLED
=
52
;
const
ENCIRCLED
=
52
;
const
TEXT_
OVERLINED
=
53
;
const
OVERLINED
=
53
;
/**
/**
* Moves the terminal cursor up by sending ANSI code CUU to the terminal.
* Moves the terminal cursor up by sending ANSI co
ntrol co
de CUU to the terminal.
* If the cursor is already at the edge of the screen, this has no effect.
* If the cursor is already at the edge of the screen, this has no effect.
* @param integer $rows number of rows the cursor should be moved up
* @param integer $rows number of rows the cursor should be moved up
*/
*/
...
@@ -59,7 +70,7 @@ class ConsoleColor
...
@@ -59,7 +70,7 @@ class ConsoleColor
}
}
/**
/**
* Moves the terminal cursor down by sending ANSI code CUD to the terminal.
* Moves the terminal cursor down by sending ANSI co
ntrol co
de CUD to the terminal.
* If the cursor is already at the edge of the screen, this has no effect.
* If the cursor is already at the edge of the screen, this has no effect.
* @param integer $rows number of rows the cursor should be moved down
* @param integer $rows number of rows the cursor should be moved down
*/
*/
...
@@ -69,7 +80,7 @@ class ConsoleColor
...
@@ -69,7 +80,7 @@ class ConsoleColor
}
}
/**
/**
* Moves the terminal cursor forward by sending ANSI code CUF to the terminal.
* Moves the terminal cursor forward by sending ANSI co
ntrol co
de CUF to the terminal.
* If the cursor is already at the edge of the screen, this has no effect.
* If the cursor is already at the edge of the screen, this has no effect.
* @param integer $steps number of steps the cursor should be moved forward
* @param integer $steps number of steps the cursor should be moved forward
*/
*/
...
@@ -79,7 +90,7 @@ class ConsoleColor
...
@@ -79,7 +90,7 @@ class ConsoleColor
}
}
/**
/**
* Moves the terminal cursor backward by sending ANSI code CUB to the terminal.
* Moves the terminal cursor backward by sending ANSI co
ntrol co
de CUB to the terminal.
* If the cursor is already at the edge of the screen, this has no effect.
* If the cursor is already at the edge of the screen, this has no effect.
* @param integer $steps number of steps the cursor should be moved backward
* @param integer $steps number of steps the cursor should be moved backward
*/
*/
...
@@ -89,7 +100,7 @@ class ConsoleColor
...
@@ -89,7 +100,7 @@ class ConsoleColor
}
}
/**
/**
* Moves the terminal cursor to the beginning of the next line by sending ANSI code CNL to the terminal.
* Moves the terminal cursor to the beginning of the next line by sending ANSI co
ntrol co
de CNL to the terminal.
* @param integer $lines number of lines the cursor should be moved down
* @param integer $lines number of lines the cursor should be moved down
*/
*/
public
static
function
moveCursorNextLine
(
$lines
=
1
)
public
static
function
moveCursorNextLine
(
$lines
=
1
)
...
@@ -98,7 +109,7 @@ class ConsoleColor
...
@@ -98,7 +109,7 @@ class ConsoleColor
}
}
/**
/**
* Moves the terminal cursor to the beginning of the previous line by sending ANSI code CPL to the terminal.
* Moves the terminal cursor to the beginning of the previous line by sending ANSI co
ntrol co
de CPL to the terminal.
* @param integer $lines number of lines the cursor should be moved up
* @param integer $lines number of lines the cursor should be moved up
*/
*/
public
static
function
moveCursorPrevLine
(
$lines
=
1
)
public
static
function
moveCursorPrevLine
(
$lines
=
1
)
...
@@ -107,7 +118,7 @@ class ConsoleColor
...
@@ -107,7 +118,7 @@ class ConsoleColor
}
}
/**
/**
* Moves the cursor to an absolute position given as column and row by sending ANSI code CUP or CHA to the terminal.
* Moves the cursor to an absolute position given as column and row by sending ANSI co
ntrol co
de CUP or CHA to the terminal.
* @param integer $column 1-based column number, 1 is the left edge of the screen.
* @param integer $column 1-based column number, 1 is the left edge of the screen.
* @param integer|null $row 1-based row number, 1 is the top edge of the screen. if not set, will move cursor only in current line.
* @param integer|null $row 1-based row number, 1 is the top edge of the screen. if not set, will move cursor only in current line.
*/
*/
...
@@ -121,7 +132,7 @@ class ConsoleColor
...
@@ -121,7 +132,7 @@ class ConsoleColor
}
}
/**
/**
* Scrolls whole page up by sending ANSI code SU to the terminal.
* Scrolls whole page up by sending ANSI co
ntrol co
de SU to the terminal.
* New lines are added at the bottom. This is not supported by ANSI.SYS used in windows.
* New lines are added at the bottom. This is not supported by ANSI.SYS used in windows.
* @param int $lines number of lines to scroll up
* @param int $lines number of lines to scroll up
*/
*/
...
@@ -131,7 +142,7 @@ class ConsoleColor
...
@@ -131,7 +142,7 @@ class ConsoleColor
}
}
/**
/**
* Scrolls whole page down by sending ANSI code SD to the terminal.
* Scrolls whole page down by sending ANSI co
ntrol co
de SD to the terminal.
* New lines are added at the top. This is not supported by ANSI.SYS used in windows.
* New lines are added at the top. This is not supported by ANSI.SYS used in windows.
* @param int $lines number of lines to scroll down
* @param int $lines number of lines to scroll down
*/
*/
...
@@ -141,7 +152,7 @@ class ConsoleColor
...
@@ -141,7 +152,7 @@ class ConsoleColor
}
}
/**
/**
* Saves the current cursor position by sending ANSI code SCP to the terminal.
* Saves the current cursor position by sending ANSI co
ntrol co
de SCP to the terminal.
* Position can then be restored with {@link restoreCursorPosition}.
* Position can then be restored with {@link restoreCursorPosition}.
*/
*/
public
static
function
saveCursorPosition
()
public
static
function
saveCursorPosition
()
...
@@ -150,7 +161,7 @@ class ConsoleColor
...
@@ -150,7 +161,7 @@ class ConsoleColor
}
}
/**
/**
* Restores the cursor position saved with {@link saveCursorPosition} by sending ANSI code RCP to the terminal.
* Restores the cursor position saved with {@link saveCursorPosition} by sending ANSI co
ntrol co
de RCP to the terminal.
*/
*/
public
static
function
restoreCursorPosition
()
public
static
function
restoreCursorPosition
()
{
{
...
@@ -176,7 +187,7 @@ class ConsoleColor
...
@@ -176,7 +187,7 @@ class ConsoleColor
}
}
/**
/**
* Clears entire screen content by sending ANSI code ED with argument 2 to the terminal.
* Clears entire screen content by sending ANSI co
ntrol co
de ED with argument 2 to the terminal.
* Cursor position will not be changed.
* Cursor position will not be changed.
* **Note:** ANSI.SYS implementation used in windows will reset cursor position to upper left corner of the screen.
* **Note:** ANSI.SYS implementation used in windows will reset cursor position to upper left corner of the screen.
*/
*/
...
@@ -186,7 +197,7 @@ class ConsoleColor
...
@@ -186,7 +197,7 @@ class ConsoleColor
}
}
/**
/**
* Clears text from cursor to the beginning of the screen by sending ANSI code ED with argument 1 to the terminal.
* Clears text from cursor to the beginning of the screen by sending ANSI co
ntrol co
de ED with argument 1 to the terminal.
* Cursor position will not be changed.
* Cursor position will not be changed.
*/
*/
public
static
function
clearScreenBeforeCursor
()
public
static
function
clearScreenBeforeCursor
()
...
@@ -195,7 +206,7 @@ class ConsoleColor
...
@@ -195,7 +206,7 @@ class ConsoleColor
}
}
/**
/**
* Clears text from cursor to the end of the screen by sending ANSI code ED with argument 0 to the terminal.
* Clears text from cursor to the end of the screen by sending ANSI co
ntrol co
de ED with argument 0 to the terminal.
* Cursor position will not be changed.
* Cursor position will not be changed.
*/
*/
public
static
function
clearScreenAfterCursor
()
public
static
function
clearScreenAfterCursor
()
...
@@ -203,9 +214,8 @@ class ConsoleColor
...
@@ -203,9 +214,8 @@ class ConsoleColor
echo
"
\033
[0J"
;
echo
"
\033
[0J"
;
}
}
/**
/**
* Clears the line, the cursor is currently on by sending ANSI code EL with argument 2 to the terminal.
* Clears the line, the cursor is currently on by sending ANSI co
ntrol co
de EL with argument 2 to the terminal.
* Cursor position will not be changed.
* Cursor position will not be changed.
*/
*/
public
static
function
clearLine
()
public
static
function
clearLine
()
...
@@ -214,7 +224,7 @@ class ConsoleColor
...
@@ -214,7 +224,7 @@ class ConsoleColor
}
}
/**
/**
* Clears text from cursor position to the beginning of the line by sending ANSI code EL with argument 1 to the terminal.
* Clears text from cursor position to the beginning of the line by sending ANSI co
ntrol co
de EL with argument 1 to the terminal.
* Cursor position will not be changed.
* Cursor position will not be changed.
*/
*/
public
static
function
clearLineBeforeCursor
()
public
static
function
clearLineBeforeCursor
()
...
@@ -223,7 +233,7 @@ class ConsoleColor
...
@@ -223,7 +233,7 @@ class ConsoleColor
}
}
/**
/**
* Clears text from cursor position to the end of the line by sending ANSI code EL with argument 0 to the terminal.
* Clears text from cursor position to the end of the line by sending ANSI co
ntrol co
de EL with argument 0 to the terminal.
* Cursor position will not be changed.
* Cursor position will not be changed.
*/
*/
public
static
function
clearLineAfterCursor
()
public
static
function
clearLineAfterCursor
()
...
@@ -309,32 +319,32 @@ class ConsoleColor
...
@@ -309,32 +319,32 @@ class ConsoleColor
{
{
switch
(
$controlCode
)
switch
(
$controlCode
)
{
{
case
static
::
FG_
COLOR_
BLACK
:
$style
=
array
(
'color'
=>
'#000000'
);
break
;
case
static
::
FG_BLACK
:
$style
=
array
(
'color'
=>
'#000000'
);
break
;
case
static
::
FG_
COLOR_
BLUE
:
$style
=
array
(
'color'
=>
'#000078'
);
break
;
case
static
::
FG_BLUE
:
$style
=
array
(
'color'
=>
'#000078'
);
break
;
case
static
::
FG_C
OLOR_C
YAN
:
$style
=
array
(
'color'
=>
'#007878'
);
break
;
case
static
::
FG_CYAN
:
$style
=
array
(
'color'
=>
'#007878'
);
break
;
case
static
::
FG_
COLOR_
GREEN
:
$style
=
array
(
'color'
=>
'#007800'
);
break
;
case
static
::
FG_GREEN
:
$style
=
array
(
'color'
=>
'#007800'
);
break
;
case
static
::
FG_
COLOR_
GREY
:
$style
=
array
(
'color'
=>
'#787878'
);
break
;
case
static
::
FG_GREY
:
$style
=
array
(
'color'
=>
'#787878'
);
break
;
case
static
::
FG_
COLOR_
PURPLE
:
$style
=
array
(
'color'
=>
'#780078'
);
break
;
case
static
::
FG_PURPLE
:
$style
=
array
(
'color'
=>
'#780078'
);
break
;
case
static
::
FG_
COLOR_
RED
:
$style
=
array
(
'color'
=>
'#780000'
);
break
;
case
static
::
FG_RED
:
$style
=
array
(
'color'
=>
'#780000'
);
break
;
case
static
::
FG_
COLOR_
YELLOW
:
$style
=
array
(
'color'
=>
'#787800'
);
break
;
case
static
::
FG_YELLOW
:
$style
=
array
(
'color'
=>
'#787800'
);
break
;
case
static
::
BG_
COLOR_
BLACK
:
$style
=
array
(
'background-color'
=>
'#000000'
);
break
;
case
static
::
BG_BLACK
:
$style
=
array
(
'background-color'
=>
'#000000'
);
break
;
case
static
::
BG_
COLOR_
BLUE
:
$style
=
array
(
'background-color'
=>
'#000078'
);
break
;
case
static
::
BG_BLUE
:
$style
=
array
(
'background-color'
=>
'#000078'
);
break
;
case
static
::
BG_C
OLOR_C
YAN
:
$style
=
array
(
'background-color'
=>
'#007878'
);
break
;
case
static
::
BG_CYAN
:
$style
=
array
(
'background-color'
=>
'#007878'
);
break
;
case
static
::
BG_
COLOR_
GREEN
:
$style
=
array
(
'background-color'
=>
'#007800'
);
break
;
case
static
::
BG_GREEN
:
$style
=
array
(
'background-color'
=>
'#007800'
);
break
;
case
static
::
BG_
COLOR_
GREY
:
$style
=
array
(
'background-color'
=>
'#787878'
);
break
;
case
static
::
BG_GREY
:
$style
=
array
(
'background-color'
=>
'#787878'
);
break
;
case
static
::
BG_
COLOR_
PURPLE
:
$style
=
array
(
'background-color'
=>
'#780078'
);
break
;
case
static
::
BG_PURPLE
:
$style
=
array
(
'background-color'
=>
'#780078'
);
break
;
case
static
::
BG_
COLOR_
RED
:
$style
=
array
(
'background-color'
=>
'#780000'
);
break
;
case
static
::
BG_RED
:
$style
=
array
(
'background-color'
=>
'#780000'
);
break
;
case
static
::
BG_
COLOR_
YELLOW
:
$style
=
array
(
'background-color'
=>
'#787800'
);
break
;
case
static
::
BG_YELLOW
:
$style
=
array
(
'background-color'
=>
'#787800'
);
break
;
case
static
::
TEXT_
BOLD
:
$style
=
array
(
'font-weight'
=>
'bold'
);
break
;
case
static
::
BOLD
:
$style
=
array
(
'font-weight'
=>
'bold'
);
break
;
case
static
::
TEXT_
ITALIC
:
$style
=
array
(
'font-style'
=>
'italic'
);
break
;
case
static
::
ITALIC
:
$style
=
array
(
'font-style'
=>
'italic'
);
break
;
case
static
::
TEXT_
UNDERLINE
:
$style
=
array
(
'text-decoration'
=>
array
(
'underline'
));
break
;
case
static
::
UNDERLINE
:
$style
=
array
(
'text-decoration'
=>
array
(
'underline'
));
break
;
case
static
::
TEXT_
OVERLINED
:
$style
=
array
(
'text-decoration'
=>
array
(
'overline'
));
break
;
case
static
::
OVERLINED
:
$style
=
array
(
'text-decoration'
=>
array
(
'overline'
));
break
;
case
static
::
TEXT_
CROSSED_OUT
:
$style
=
array
(
'text-decoration'
=>
array
(
'line-through'
));
break
;
case
static
::
CROSSED_OUT
:
$style
=
array
(
'text-decoration'
=>
array
(
'line-through'
));
break
;
case
static
::
TEXT_
BLINK
:
$style
=
array
(
'text-decoration'
=>
array
(
'blink'
));
break
;
case
static
::
BLINK
:
$style
=
array
(
'text-decoration'
=>
array
(
'blink'
));
break
;
case
static
::
TEXT_
NEGATIVE
:
// ???
case
static
::
NEGATIVE
:
// ???
case
static
::
TEXT_
CONCEALED
:
case
static
::
CONCEALED
:
case
static
::
TEXT_
ENCIRCLED
:
case
static
::
ENCIRCLED
:
case
static
::
TEXT_
FRAMED
:
case
static
::
FRAMED
:
// TODO allow resetting codes
// TODO allow resetting codes
break
;
break
;
case
0
:
// ansi reset
case
0
:
// ansi reset
...
@@ -456,13 +466,13 @@ class ConsoleColor
...
@@ -456,13 +466,13 @@ class ConsoleColor
}
}
/**
/**
* Escapes % so they don't get interpreted as color codes
* Escapes % so they don't get interpreted as color codes
*
*
* @param string $string String to escape
* @param string $string String to escape
*
*
* @access public
* @access public
* @return string
* @return string
*/
*/
public
static
function
escape
(
$string
)
public
static
function
escape
(
$string
)
{
{
return
str_replace
(
'%'
,
'%%'
,
$string
);
return
str_replace
(
'%'
,
'%%'
,
$string
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment