Формат документації
Дата оновлення перекладу 2024-05-13
Формат документації
Документація Symfony використовує reStructuredText в якості своєї мови розмітки та Sphinx для генерування документації у форматах, які читаютсья кінцевими користувачами, на кшталт HTML та PDF.
reStructuredText
reStructuredText - це синтаксис розмітки звичайного тексту, схожий на Markdown, але набагато суворіший за синтаксисом. Якщо ви не знайомі з reStructuredText, витратьте трохи часу на ознайомлення з цим форматом, прочитавши наявну документацію Symfony вихідного коду.
Якщо ви хочете дізнатися більше про цей формат, перегляньте туторіал reStructuredText Primer та Довідник reStructuredText.
Caution
Якщо ви знайомі з Markdown, будьте обережні, тому що речі іноді дуже схожі, але різні:
- Списки починаються з початку рядку (відступи не дозволені);
- Вбудовані блоки коду використовують подвійні лапки (
``ось так``
).
Sphinx
Sphinx - це система побудови, яка надає інструменти для створення документації з документів reStructuredText. Таким чином, вона додає нові директиви та інтерпретований текстоові ролі стандартній розмітці reStructuredText. Дізнайтеся більше про Поняття розмітки Sphinx.
Виділення синтаксису
За замовчуванням для виділення синтаксису в усіх блоках коду використовується PHP.
Ви можете змінити його за допомогою директиви code-block
:
1 2 3
.. code-block:: yaml
{ foo: bar, bar: { foo: bar, bar: baz } }
Note
Окрім усіх основних мов програмування, виділення синтаксису підтримує всі види мов розмітки та конфігурації. Перевірте список підтримуваних мов на сайті виділення синтаксису.
Блоки конфігурації
Кожного разу, коли ви додаєте зразок конфігурації, використовуйте директиву 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-symfony |
???????? PHP-???? ?? ???????????? ?????????? Symfony |
php-standalone |
PHP-???? ??? ???????????? ? ????-????? 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
.