Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F4062062
TableStyle.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
12 KB
Referenced Files
None
Subscribers
None
TableStyle.php
View Options
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace
Symfony\Component\Console\Helper
;
use
Symfony\Component\Console\Exception\InvalidArgumentException
;
use
Symfony\Component\Console\Exception\LogicException
;
/**
* Defines the styles for a Table.
*
* @author Fabien Potencier <fabien@symfony.com>
* @author Саша Стаменковић <umpirsky@gmail.com>
* @author Dany Maillard <danymaillard93b@gmail.com>
*/
class
TableStyle
{
private
string
$paddingChar
=
' '
;
private
string
$horizontalOutsideBorderChar
=
'-'
;
private
string
$horizontalInsideBorderChar
=
'-'
;
private
string
$verticalOutsideBorderChar
=
'|'
;
private
string
$verticalInsideBorderChar
=
'|'
;
private
string
$crossingChar
=
'+'
;
private
string
$crossingTopRightChar
=
'+'
;
private
string
$crossingTopMidChar
=
'+'
;
private
string
$crossingTopLeftChar
=
'+'
;
private
string
$crossingMidRightChar
=
'+'
;
private
string
$crossingBottomRightChar
=
'+'
;
private
string
$crossingBottomMidChar
=
'+'
;
private
string
$crossingBottomLeftChar
=
'+'
;
private
string
$crossingMidLeftChar
=
'+'
;
private
string
$crossingTopLeftBottomChar
=
'+'
;
private
string
$crossingTopMidBottomChar
=
'+'
;
private
string
$crossingTopRightBottomChar
=
'+'
;
private
string
$headerTitleFormat
=
'<fg=black;bg=white;options=bold> %s </>'
;
private
string
$footerTitleFormat
=
'<fg=black;bg=white;options=bold> %s </>'
;
private
string
$cellHeaderFormat
=
'<info>%s</info>'
;
private
string
$cellRowFormat
=
'%s'
;
private
string
$cellRowContentFormat
=
' %s '
;
private
string
$borderFormat
=
'%s'
;
private
int
$padType
=
\STR_PAD_RIGHT
;
/**
* Sets padding character, used for cell padding.
*
* @return $this
*/
public
function
setPaddingChar
(
string
$paddingChar
):
static
{
if
(!
$paddingChar
)
{
throw
new
LogicException
(
'The padding char must not be empty.'
);
}
$this
->
paddingChar
=
$paddingChar
;
return
$this
;
}
/**
* Gets padding character, used for cell padding.
*/
public
function
getPaddingChar
():
string
{
return
$this
->
paddingChar
;
}
/**
* Sets horizontal border characters.
*
* <code>
* ╔═══════════════╤══════════════════════════╤══════════════════╗
* 1 ISBN 2 Title │ Author ║
* ╠═══════════════╪══════════════════════════╪══════════════════╣
* ║ 99921-58-10-7 │ Divine Comedy │ Dante Alighieri ║
* ║ 9971-5-0210-0 │ A Tale of Two Cities │ Charles Dickens ║
* ║ 960-425-059-0 │ The Lord of the Rings │ J. R. R. Tolkien ║
* ║ 80-902734-1-6 │ And Then There Were None │ Agatha Christie ║
* ╚═══════════════╧══════════════════════════╧══════════════════╝
* </code>
*
* @return $this
*/
public
function
setHorizontalBorderChars
(
string
$outside
,
?
string
$inside
=
null
):
static
{
$this
->
horizontalOutsideBorderChar
=
$outside
;
$this
->
horizontalInsideBorderChar
=
$inside
??
$outside
;
return
$this
;
}
/**
* Sets vertical border characters.
*
* <code>
* ╔═══════════════╤══════════════════════════╤══════════════════╗
* ║ ISBN │ Title │ Author ║
* ╠═══════1═══════╪══════════════════════════╪══════════════════╣
* ║ 99921-58-10-7 │ Divine Comedy │ Dante Alighieri ║
* ║ 9971-5-0210-0 │ A Tale of Two Cities │ Charles Dickens ║
* ╟───────2───────┼──────────────────────────┼──────────────────╢
* ║ 960-425-059-0 │ The Lord of the Rings │ J. R. R. Tolkien ║
* ║ 80-902734-1-6 │ And Then There Were None │ Agatha Christie ║
* ╚═══════════════╧══════════════════════════╧══════════════════╝
* </code>
*
* @return $this
*/
public
function
setVerticalBorderChars
(
string
$outside
,
?
string
$inside
=
null
):
static
{
$this
->
verticalOutsideBorderChar
=
$outside
;
$this
->
verticalInsideBorderChar
=
$inside
??
$outside
;
return
$this
;
}
/**
* Gets border characters.
*
* @internal
*/
public
function
getBorderChars
():
array
{
return
[
$this
->
horizontalOutsideBorderChar
,
$this
->
verticalOutsideBorderChar
,
$this
->
horizontalInsideBorderChar
,
$this
->
verticalInsideBorderChar
,
];
}
/**
* Sets crossing characters.
*
* Example:
* <code>
* 1═══════════════2══════════════════════════2══════════════════3
* ║ ISBN │ Title │ Author ║
* 8'══════════════0'═════════════════════════0'═════════════════4'
* ║ 99921-58-10-7 │ Divine Comedy │ Dante Alighieri ║
* ║ 9971-5-0210-0 │ A Tale of Two Cities │ Charles Dickens ║
* 8───────────────0──────────────────────────0──────────────────4
* ║ 960-425-059-0 │ The Lord of the Rings │ J. R. R. Tolkien ║
* ║ 80-902734-1-6 │ And Then There Were None │ Agatha Christie ║
* 7═══════════════6══════════════════════════6══════════════════5
* </code>
*
* @param string $cross Crossing char (see #0 of example)
* @param string $topLeft Top left char (see #1 of example)
* @param string $topMid Top mid char (see #2 of example)
* @param string $topRight Top right char (see #3 of example)
* @param string $midRight Mid right char (see #4 of example)
* @param string $bottomRight Bottom right char (see #5 of example)
* @param string $bottomMid Bottom mid char (see #6 of example)
* @param string $bottomLeft Bottom left char (see #7 of example)
* @param string $midLeft Mid left char (see #8 of example)
* @param string|null $topLeftBottom Top left bottom char (see #8' of example), equals to $midLeft if null
* @param string|null $topMidBottom Top mid bottom char (see #0' of example), equals to $cross if null
* @param string|null $topRightBottom Top right bottom char (see #4' of example), equals to $midRight if null
*
* @return $this
*/
public
function
setCrossingChars
(
string
$cross
,
string
$topLeft
,
string
$topMid
,
string
$topRight
,
string
$midRight
,
string
$bottomRight
,
string
$bottomMid
,
string
$bottomLeft
,
string
$midLeft
,
?
string
$topLeftBottom
=
null
,
?
string
$topMidBottom
=
null
,
?
string
$topRightBottom
=
null
):
static
{
$this
->
crossingChar
=
$cross
;
$this
->
crossingTopLeftChar
=
$topLeft
;
$this
->
crossingTopMidChar
=
$topMid
;
$this
->
crossingTopRightChar
=
$topRight
;
$this
->
crossingMidRightChar
=
$midRight
;
$this
->
crossingBottomRightChar
=
$bottomRight
;
$this
->
crossingBottomMidChar
=
$bottomMid
;
$this
->
crossingBottomLeftChar
=
$bottomLeft
;
$this
->
crossingMidLeftChar
=
$midLeft
;
$this
->
crossingTopLeftBottomChar
=
$topLeftBottom
??
$midLeft
;
$this
->
crossingTopMidBottomChar
=
$topMidBottom
??
$cross
;
$this
->
crossingTopRightBottomChar
=
$topRightBottom
??
$midRight
;
return
$this
;
}
/**
* Sets default crossing character used for each cross.
*
* @see {@link setCrossingChars()} for setting each crossing individually.
*/
public
function
setDefaultCrossingChar
(
string
$char
):
self
{
return
$this
->
setCrossingChars
(
$char
,
$char
,
$char
,
$char
,
$char
,
$char
,
$char
,
$char
,
$char
);
}
/**
* Gets crossing character.
*/
public
function
getCrossingChar
():
string
{
return
$this
->
crossingChar
;
}
/**
* Gets crossing characters.
*
* @internal
*/
public
function
getCrossingChars
():
array
{
return
[
$this
->
crossingChar
,
$this
->
crossingTopLeftChar
,
$this
->
crossingTopMidChar
,
$this
->
crossingTopRightChar
,
$this
->
crossingMidRightChar
,
$this
->
crossingBottomRightChar
,
$this
->
crossingBottomMidChar
,
$this
->
crossingBottomLeftChar
,
$this
->
crossingMidLeftChar
,
$this
->
crossingTopLeftBottomChar
,
$this
->
crossingTopMidBottomChar
,
$this
->
crossingTopRightBottomChar
,
];
}
/**
* Sets header cell format.
*
* @return $this
*/
public
function
setCellHeaderFormat
(
string
$cellHeaderFormat
):
static
{
$this
->
cellHeaderFormat
=
$cellHeaderFormat
;
return
$this
;
}
/**
* Gets header cell format.
*/
public
function
getCellHeaderFormat
():
string
{
return
$this
->
cellHeaderFormat
;
}
/**
* Sets row cell format.
*
* @return $this
*/
public
function
setCellRowFormat
(
string
$cellRowFormat
):
static
{
$this
->
cellRowFormat
=
$cellRowFormat
;
return
$this
;
}
/**
* Gets row cell format.
*/
public
function
getCellRowFormat
():
string
{
return
$this
->
cellRowFormat
;
}
/**
* Sets row cell content format.
*
* @return $this
*/
public
function
setCellRowContentFormat
(
string
$cellRowContentFormat
):
static
{
$this
->
cellRowContentFormat
=
$cellRowContentFormat
;
return
$this
;
}
/**
* Gets row cell content format.
*/
public
function
getCellRowContentFormat
():
string
{
return
$this
->
cellRowContentFormat
;
}
/**
* Sets table border format.
*
* @return $this
*/
public
function
setBorderFormat
(
string
$borderFormat
):
static
{
$this
->
borderFormat
=
$borderFormat
;
return
$this
;
}
/**
* Gets table border format.
*/
public
function
getBorderFormat
():
string
{
return
$this
->
borderFormat
;
}
/**
* Sets cell padding type.
*
* @return $this
*/
public
function
setPadType
(
int
$padType
):
static
{
if
(!
\in_array
(
$padType
,
[
\STR_PAD_LEFT
,
\STR_PAD_RIGHT
,
\STR_PAD_BOTH
],
true
))
{
throw
new
InvalidArgumentException
(
'Invalid padding type. Expected one of (STR_PAD_LEFT, STR_PAD_RIGHT, STR_PAD_BOTH).'
);
}
$this
->
padType
=
$padType
;
return
$this
;
}
/**
* Gets cell padding type.
*/
public
function
getPadType
():
int
{
return
$this
->
padType
;
}
public
function
getHeaderTitleFormat
():
string
{
return
$this
->
headerTitleFormat
;
}
/**
* @return $this
*/
public
function
setHeaderTitleFormat
(
string
$format
):
static
{
$this
->
headerTitleFormat
=
$format
;
return
$this
;
}
public
function
getFooterTitleFormat
():
string
{
return
$this
->
footerTitleFormat
;
}
/**
* @return $this
*/
public
function
setFooterTitleFormat
(
string
$format
):
static
{
$this
->
footerTitleFormat
=
$format
;
return
$this
;
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Aug 16 2026, 10:01 (12 w, 10 h ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
53/cb/24f8a098129565cbce5a06d2292f
Default Alt Text
TableStyle.php (12 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment