Table of Contents
Questions & Feedback
Found a typo or an error?
Want to improve this document? Edit it.
Need support or have a technical question?
Post to the user mailing-list.
Master Symfony2 fundamentals
Symfony hosting done right
Discover the SensioLabs Support
Formato della documentazione
Formato della documentazione¶
La documentazione di Symfony2 utilizza reStructuredText, che usa come linguaggio di markup Sphinx per la generazione dell'output (HTML, PDF, ...).
reStructuredText¶
reStructuredText "è un sistema di analisi e una sintassi a marcatori facilmente leggibile, in testo semplice e WYSIWYG".
Si può imparare di più su questa sintassi leggendo i documenti di Symfony2 oppure leggendo reStructuredText Primer nel sito web di Sphinx.
Se si ha dimestichezza con Markdown, bisogna fare attenzione alle cose simili, ma differenti:
- Le liste cominciano all'inizio della riga (non hanno bisogno di indentazione)
- I blocchi di codice utilizzano i doppi apici (
``come questi``).
Sphinx¶
Sphinx è un sistema di compilazione che aggiunge alcuni piacevoli strumenti per creare documentazione da documenti reStructuredText. Come tale, aggiunge nuove direttive e interpreta ruoli di testo definiti nel markup standard reST .
Colorazione della sintassi¶
Tutti i blocchi di codice utilizzano PHP come linguaggio predefinito. È possibile cambiarlo
con la direttiva code-block:
1 2 3 | .. code-block:: yaml
{ foo: bar, bar: { foo: bar, bar: baz } }
|
Se il proprio codice PHP comincia con <?php, allora si avrà bisogno di utilizzare html+php come
pseudo-linguaggio:
1 2 3 | .. code-block:: html+php
<?php echo $this->foobar(); ?>
|
Note
La lista dei linguaggi supportati è disponibile nel sito di Pygments.
Blocchi di configurazione¶
Ogni volta che si mostra una configurazione, per mostrarla in tutti i formati supportati ,bisogna utilizzare la
direttiva configuration-block (PHP, YAML e
XML):
1 2 3 4 5 6 7 8 9 10 11 12 13 | .. configuration-block::
.. code-block:: yaml
# Configurazione in YAML
.. code-block:: xml
<!-- Configurazione in XML //-->
.. code-block:: php
// Configurazione in PHP
|
Il precedente snippet reST mostra un blocco come di seguito:
- YAML
1
# Configurazione in YAML - XML
1
<!-- Configurazione in XML //--> - PHP
1
// Configurazione in PHP
Ecco la lista dei formati attualmente supportati:
| Formato markup | Mostrato |
|---|---|
| html | HTML |
| xml | XML |
| php | PHP |
| yaml | YAML |
| jinja | Twig |
| html+jinja | Twig |
| html+php | PHP |
| ini | INI |
| php-annotations | Annotazioni |
Collegamenti¶
Per aggiungere collegamenti ad altre pagine nei documenti, usare la seguente sintassi:
1 | :doc:`/percorso/della/pagina`
|
Usando il percorso e il nome del file della pagina senza estensione, per esempio:
1 2 3 4 5 | :doc:`/book/controller`
:doc:`/components/event_dispatcher/introduction`
:doc:`/cookbook/configuration/environments`
|
Il testo del collegamento sarà il titolo principale del documento collegato. Si può anche specificare un testo alternativo per il collegamento:
1 | :doc:`Spool di email</cookbook/email/spool>`
|
Si possono anche aggiungere collegamenti alla documentazione delle API:
1 2 3 4 5 | :namespace:`Symfony\\Component\\BrowserKit`
:class:`Symfony\\Component\\Routing\\Matcher\\ApacheUrlMatcher`
:method:`Symfony\\Component\\HttpKernel\\Bundle\\Bundle::build`
|
e alla documentazione di PHP:
1 2 3 4 5 | :phpclass:`SimpleXMLElement`
`DateTime::createFromFormat`_
:phpfunction:`iterator_to_array`
|
Test della documentazione¶
Per fare un test della documentazione, prima di un commit:
- Installare Sphinx;
- Eseguire la preparazione rapida di Sphinx;
- Installare le estensioni di Sphinx (vedere sotto);
- Eseguire
make htmle controllare l'HTML generato nella cartellabuild.
Installare le estensioni di Sphinx¶
- Scaricare l'estensione dal repository dei sorgenti
- Copiare la cartella
sensionella cartella_extsdella propria cartella dei sorgenti (in cui si trovaconf.py)- Aggiungere le righe seguenti al file
conf.py:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | # ...
sys.path.append(os.path.abspath('_exts'))
# aggiunge PhpLexer
from sphinx.highlighting import lexers
from pygments.lexers.web import PhpLexer
# ...
# aggiunge le estensioni alla lista di estensioni
extensions = [..., 'sensio.sphinx.refinclude', 'sensio.sphinx.configurationblock', 'sensio.sphinx.phpcode']
# abilita la colorazione per il codice PHP non compreso tra ``<?php ... ?>``
lexers['php'] = PhpLexer(startinline=True)
lexers['php-annotations'] = PhpLexer(startinline=True)
# usa PHP come dominio primario
primary_domain = 'php'
# imposta url per collegamenti alle API
api_url = 'http://api.symfony.com/master/%s'
|





is a trademark of Fabien Potencier. All rights reserved.