Skip to content

Commit 1a43e55

Browse files
committed
Merge branch '6.4' into 7.2
* 6.4: [Console] Update the table helper page [Mercure] Explain the reason for --no-tls
2 parents db23f1f + 759ce7a commit 1a43e55

File tree

2 files changed

+65
-37
lines changed

2 files changed

+65
-37
lines changed

components/console/helpers/table.rst

+63-36
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,11 @@
1-
Table
2-
=====
1+
Table Helper
2+
============
33

4-
When building a console application it may be useful to display tabular data:
5-
6-
.. code-block:: terminal
7-
8-
+---------------+--------------------------+------------------+
9-
| ISBN | Title | Author |
10-
+---------------+--------------------------+------------------+
11-
| 99921-58-10-7 | Divine Comedy | Dante Alighieri |
12-
| 9971-5-0210-0 | A Tale of Two Cities | Charles Dickens |
13-
| 960-425-059-0 | The Lord of the Rings | J. R. R. Tolkien |
14-
| 80-902734-1-6 | And Then There Were None | Agatha Christie |
15-
+---------------+--------------------------+------------------+
16-
17-
.. note::
18-
19-
As an alternative, consider using the
20-
:ref:`SymfonyStyle <symfony-style-content>` to display a table.
4+
When building console applications, Symfony provides several utilities for
5+
rendering tabular data. The simplest option is to use the table methods from
6+
:ref:`Symfony Style <symfony-style-content>`. While convenient, this approach
7+
doesn't allow customization of the table's design. For more control and advanced
8+
features, use the ``Table`` console helper explained in this article.
219

2210
To display a table, use :class:`Symfony\\Component\\Console\\Helper\\Table`,
2311
set the headers, set the rows and then render the table::
@@ -48,6 +36,22 @@ set the headers, set the rows and then render the table::
4836
}
4937
}
5038

39+
This outputs:
40+
41+
.. code-block:: terminal
42+
43+
+---------------+--------------------------+------------------+
44+
| ISBN | Title | Author |
45+
+---------------+--------------------------+------------------+
46+
| 99921-58-10-7 | Divine Comedy | Dante Alighieri |
47+
| 9971-5-0210-0 | A Tale of Two Cities | Charles Dickens |
48+
| 960-425-059-0 | The Lord of the Rings | J. R. R. Tolkien |
49+
| 80-902734-1-6 | And Then There Were None | Agatha Christie |
50+
+---------------+--------------------------+------------------+
51+
52+
Adding Table Separators
53+
-----------------------
54+
5155
You can add a table separator anywhere in the output by passing an instance of
5256
:class:`Symfony\\Component\\Console\\Helper\\TableSeparator` as a row::
5357

@@ -61,6 +65,8 @@ You can add a table separator anywhere in the output by passing an instance of
6165
['80-902734-1-6', 'And Then There Were None', 'Agatha Christie'],
6266
]);
6367

68+
This outputs:
69+
6470
.. code-block:: terminal
6571
6672
+---------------+--------------------------+------------------+
@@ -73,13 +79,18 @@ You can add a table separator anywhere in the output by passing an instance of
7379
| 80-902734-1-6 | And Then There Were None | Agatha Christie |
7480
+---------------+--------------------------+------------------+
7581
82+
Adding Table Titles
83+
-------------------
84+
7685
You can optionally display titles at the top and the bottom of the table::
7786

7887
// ...
7988
$table->setHeaderTitle('Books');
8089
$table->setFooterTitle('Page 1/2');
8190
$table->render();
8291

92+
This outputs:
93+
8394
.. code-block:: terminal
8495
8596
+---------------+----------- Books --------+------------------+
@@ -92,6 +103,9 @@ You can optionally display titles at the top and the bottom of the table::
92103
| 80-902734-1-6 | And Then There Were None | Agatha Christie |
93104
+---------------+--------- Page 1/2 -------+------------------+
94105
106+
Setting the Column Widths Explicitly
107+
------------------------------------
108+
95109
By default, the width of the columns is calculated automatically based on their
96110
contents. Use the :method:`Symfony\\Component\\Console\\Helper\\Table::setColumnWidths`
97111
method to set the column widths explicitly::
@@ -114,7 +128,7 @@ argument is the column width::
114128
$table->setColumnWidth(2, 30);
115129
$table->render();
116130

117-
The output of this command will be:
131+
This outputs:
118132

119133
.. code-block:: terminal
120134
@@ -141,7 +155,7 @@ If you prefer to wrap long contents in multiple rows, use the
141155
$table->setColumnMaxWidth(1, 10);
142156
$table->render();
143157

144-
The output of this command will be:
158+
This outputs:
145159

146160
.. code-block:: terminal
147161
@@ -154,14 +168,17 @@ The output of this command will be:
154168
| (the rest of the rows...) |
155169
+-------+------------+--------------------------------+
156170
171+
Rendering Vertical Tables
172+
-------------------------
173+
157174
By default, table contents are displayed horizontally. You can change this behavior
158175
via the :method:`Symfony\\Component\\Console\\Helper\\Table::setVertical` method::
159176

160177
// ...
161178
$table->setVertical();
162179
$table->render();
163180

164-
The output of this command will be:
181+
This outputs:
165182

166183
.. code-block:: terminal
167184
@@ -175,17 +192,24 @@ The output of this command will be:
175192
| Author: Charles Dickens |
176193
+------------------------------+
177194
195+
Customizing the Table Style
196+
---------------------------
197+
178198
The table style can be changed to any built-in styles via
179199
:method:`Symfony\\Component\\Console\\Helper\\Table::setStyle`::
180200

181-
// same as calling nothing
201+
// this 'default' style is the one used when no style is specified
182202
$table->setStyle('default');
183203

184-
// changes the default style to compact
204+
Built-in Table Styles
205+
~~~~~~~~~~~~~~~~~~~~~
206+
207+
**Compact**::
208+
185209
$table->setStyle('compact');
186210
$table->render();
187211

188-
This code results in:
212+
This outputs:
189213

190214
.. code-block:: terminal
191215
@@ -195,12 +219,12 @@ This code results in:
195219
960-425-059-0 The Lord of the Rings J. R. R. Tolkien
196220
80-902734-1-6 And Then There Were None Agatha Christie
197221
198-
You can also set the style to ``borderless``::
222+
**Borderless**::
199223

200224
$table->setStyle('borderless');
201225
$table->render();
202226

203-
which outputs:
227+
This outputs:
204228

205229
.. code-block:: terminal
206230
@@ -213,12 +237,12 @@ which outputs:
213237
80-902734-1-6 And Then There Were None Agatha Christie
214238
=============== ========================== ==================
215239
216-
You can also set the style to ``box``::
240+
**Box**::
217241

218242
$table->setStyle('box');
219243
$table->render();
220244

221-
which outputs:
245+
This outputs:
222246

223247
.. code-block:: terminal
224248
@@ -231,12 +255,12 @@ which outputs:
231255
│ 80-902734-1-6 │ And Then There Were None │ Agatha Christie │
232256
└───────────────┴──────────────────────────┴──────────────────┘
233257
234-
You can also set the style to ``box-double``::
258+
**Double box**::
235259

236260
$table->setStyle('box-double');
237261
$table->render();
238262

239-
which outputs:
263+
This outputs:
240264

241265
.. code-block:: terminal
242266
@@ -249,7 +273,10 @@ which outputs:
249273
║ 80-902734-1-6 │ And Then There Were None │ Agatha Christie ║
250274
╚═══════════════╧══════════════════════════╧══════════════════╝
251275
252-
If the built-in styles do not fit your need, define your own::
276+
Making a Custom Table Style
277+
~~~~~~~~~~~~~~~~~~~~~~~~~~~
278+
279+
If the built-in styles do not fit your needs, define your own::
253280

254281
use Symfony\Component\Console\Helper\TableStyle;
255282

@@ -339,7 +366,7 @@ To make a table cell that spans multiple columns you can use a :class:`Symfony\\
339366
;
340367
$table->render();
341368

342-
This results in:
369+
This outputs:
343370

344371
.. code-block:: terminal
345372
@@ -362,7 +389,7 @@ This results in:
362389
]);
363390
// ...
364391

365-
This generates:
392+
This outputs:
366393

367394
.. code-block:: terminal
368395
@@ -441,7 +468,7 @@ The only requirement to append rows is that the table must be rendered inside a
441468
}
442469
}
443470

444-
This will display the following table in the terminal:
471+
This outputs:
445472

446473
.. code-block:: terminal
447474
@@ -462,7 +489,7 @@ This will display the following table in the terminal:
462489
$table->render();
463490
// ...
464491

465-
This will display:
492+
This outputs:
466493

467494
.. code-block:: terminal
468495

mercure.rst

+2-1
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,8 @@ Thanks to :doc:`the Docker integration of Symfony </setup/docker>`,
7373
Run ``docker-compose up`` to start the hub if you have chosen this option.
7474

7575
If you use the :doc:`Symfony Local Web Server </setup/symfony_server>`,
76-
you must start it with the ``--no-tls`` option.
76+
you must start it with the ``--no-tls`` option to prevent mixed content and
77+
invalid TLS certificate issues:
7778

7879
.. code-block:: terminal
7980

0 commit comments

Comments
 (0)