Формат документації
Дата оновлення перекладу 2025-08-04
Формат документації
Документація Symfony використовує reStructuredText в якості своєї мови розмітки та користувацьуий інструмент під назвою Docs Builder для генерування сторінок документації.
reStructuredText
reStructuredText - це синтаксис розмітки звичайного тексту, схожий на Markdown, але набагато
суворіший за синтаксисом. Якщо ви не знайомі з reStructuredText, перегляньте туторіал
reStructuredText Primer та довідник reStructuredText.
Ви також можете приділити трохи часу пізнанню цього формату, прочитавши існуюче джерело документації Symfony.
Warning
Якщо ви знайомі з Markdown, будьте обережні, тому що речі іноді дуже схожі, але різні:
- Списки починаються з початку рядку (відступи не дозволені);
- Вбудовані блоки коду використовують подвійні лапки (
``ось так``
).
Користувацькі директиви reStructuredText
Документація Symfony включає в себе декілька користувацьких директив, які розширюють стандартний синтаксис reStructuredText.
Виділення синтаксису
За замовчуванням для виділення синтаксису в усіх блоках коду використовується PHP.
Ви можете змінити його за допомогою директиви code-block
:
1 2 3
.. code-block:: yaml
{ foo: bar, bar: { foo: bar, bar: baz } }
Note
Виділення коду підтримується для всіх мов програмування, часто використовуваних
в Symfony Docs, таких як yaml
, xml
, twig
, html
, js
,
json
, text
, bash
, diff
тощо.
Блоки конфігурації
Кожного разу, коли ви додаєте зразок конфігурації, використовуйте директиву configuration-block
щоб показати конфігурацію у всіх підтримуваних форматах конфігурації
(PHP
, YAML
і XML
). Приклад:
1 2 3 4 5 6 7 8 9 10 11 12 13
.. configuration-block::
.. code-block:: yaml
# Конфігурація в YAML
.. code-block:: xml
<!-- Конфігурація в XML -->
.. code-block:: php
// Конфігурація в PHP
Попередній відрізок reStructuredText відображається наступним чином:
1
# Конфігурація в YAML
Усі приклади коду припускають, що ви використовуєте цю функцію всередині додатку Symfony.
Якщо вам коли-небудь знадобиться показати, як використовувати цю функцію при роботі з
окремими компонентами в будь-якому PHP-додатку, використовуйте спеціальні формати
php-symfony
і php-standalone
, які будуть відображатися так:
1
// PHP-код з використанням функцій, наданих фреймворком Symfony
Поточний список підтримуваних форматов виглядає так:
?????? ???????? | ?????????????? ??? ???????????? |
---|---|
caddy |
???????????? ???-??????? Caddy |
env |
Bash-?????? (?? ?????? ?????? .env ) |
html+php |
PHP-????, ????????? ? HTML |
html+twig |
???????? Twig, ???????? ? HTML |
html |
HTML |
ini |
INI |
php-annotations |
PHP-???????? |
php-attributes |
PHP-????????? |
php-standalone |
PHP-???? ??? ???????????? ? ????-????? PHP-??????? ?? ???????????? ??????????? Symfony |
php-symfony |
???????? PHP-???? ?? ???????????? ?????????? Symfony |
php |
PHP |
rst |
reStructuredText markup |
terminal |
?????? ? ??????? ????????? ??????? (?????????????? ????, ??? ????????, ??? ??????? ???????? ????????) |
twig |
?????? ???????? Twig |
varnish3 |
???????????? Varnish Cache 3 |
varnish4 |
???????????? Varnish Cache 4 |
vcl |
???? ???????????? Varnish |
xml |
XML |
yaml |
YAML |
Відображення вкладок
У документації можна відображати вкладки. При відображенні вони виглядають подібно до блоків конфігурації, але вкладки можуть містити будь-який тип змісту:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
.. tabs:: UX Installation
.. tab:: Webpack Encore
Introduction to Webpack
.. code-block:: yaml
webpack:
# ...
.. tab:: AssetMapper
Introduction to AssetMapper
Something else about AssetMapper
Додавання посилань
Найпоширенішим типом посилань є внутрішні посилання на інші сторінки документації, які використовують наступний синтаксис:
1
:doc:`/absolute/path/to/page`
Імʼя сторінки не повинно містити розширення файлу (.rst
). Наприклад:
1 2 3 4 5
:doc:`/controller`
:doc:`/components/event_dispatcher`
:doc:`/configuration/environments`
Заголовок сторінки, на яку ви посилаєтесь, буде автоматично використано як текст посилання. Якщо ви хочете змінити цей заголовок, використовуйте цей альтернативний синтаксис:
1
:doc:`Doctrine Associations </doctrine/associations>`
Note
Хоча вони технічно правильні, уникайте використання відносних внутрішніх посилань, таких як наведені нижче, оскільки вони розривають посилання у згенерованій PDF-документації:
1 2 3 4 5
:doc:`controller`
:doc:`event_dispatcher`
:doc:`environments`
Посилання на певні розділи сторінки мають інший синтаксис. По-перше, визначте ціль
над розділом, на який ви будете посилатися (syntax: .. _
+ target name + :
):
1 2 3 4 5 6 7 8 9
# /service_container/autowiring.rst
# визначити ціль
.. _autowiring-calls:
Автомонтування інших методів (наприклад сеттерів та типізованих властивостей)
-----------------------------------------------------------------------------
// зміст розділу ...
Потім використовуйте директиву :ref::
для посилання на цей розділ з іншого файлу:
1 2 3
# /reference/attributes.rst
:ref:`Required <autowiring-calls>`
Посилання на API використовують інший синтаксис, де вам потрібно вказати тип
джерела, на яке посилаються (class
або method
):
1 2 3
:class:`Symfony\\Component\\Routing\\Matcher\\ApacheUrlMatcher`
:method:`Symfony\\Component\\HttpKernel\\Bundle\\Bundle::build`
Посилання на PHP-документацію дотримуйтесь достатньо схожого синтаксису:
1 2 3 4 5
:phpclass:`SimpleXMLElement`
:phpmethod:`DateTime::createFromFormat`
:phpfunction:`iterator_to_array`
Нові функції, зміни поведінки або старіння
Якщо ви документуєте абсолютно нову функцію, зміну або старіння, які були зроблені в Symfony, ви повинні додати на початку опису зміни відповідну директиву та короткий опис:
Для нової можливості або зміни поведінки використовуйте директиву ...versionadded:: 6.x
:
1 2 3
.. versionadded:: 7.2
... ... ... було представлено в Symfony 7.2.
Якщо ви документуєте зміну поведінки, може бути корисним коротко описати те, як змінилася поведінка:
1 2 3 4
.. versionadded:: 7.2
... ... ... було представлено в Symfony 7.2. До цієї версії,
... ... ... ... ... ... ... ... .
Для застарівання використовуйте директиву .. deprecated:: 67x
:
1 2 3
.. deprecated:: 7.2
... ... ... застаріла в Symfony 7.2.
Щоразу, коли випускається нова старша версія Symfony (наприклад, 6.0, 7.0 і т.д.), створюється нова
гілка документації створюється з гілки x.4
попередньої
старшої версії. На цьому етапі всі теги versionadded
та deprecated
для версій Symfony, які мають нижчу старшу версію, буде видалено. Наприклад, якщо
Symfony 6.0 була випущена сьогодні, то для версій від 5.0 до 5.4 versionadded
і
deprecated
буде видалено з нової гілки 6.0
.