File: documentation-standard.xml

package info (click to toggle)
zendframework 1.12.9%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 133,584 kB
  • sloc: xml: 1,311,829; php: 570,173; sh: 170; makefile: 125; sql: 121
file content (669 lines) | stat: -rw-r--r-- 23,356 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 24249 -->
<!-- Reviewed: no -->
<appendix id="doc-standard">
    <title>Norma sobre a documentação do Zend Framework</title>

    <sect1 id="doc-standard.overview">
        <title>Visão Geral</title>

        <sect2 id="doc-standard.overview.scope">
            <title>Escopo</title>

            <para>
                Este documento fornece diretrizes para a criação da documentação de usuário final
                fornecida junto com o Zend Framework. É um guia destinado aos colaboradores do Zend
                Framework, que devem escrever a documentação como parte de suas contribuições de
                componentes, bem como aos tradutores de documentação. As normas contidas neste
                documento são destinadas a facilitar a tradução da documentação, minimizar as
                diferenças visuais e de estilo entre os diferentes arquivos de documentação, e
                facilitar a busca por diferenças na documentação com o comando
                <command>diff</command>.
            </para>

            <para>
                Você pode adotar e/ou modificar estas normas, em conformidade com os termos de nossa
                <ulink url="http://framework.zend.com/license">licença</ulink>.
            </para>

            <para>
                Os tópicos compreendidos nas normas sobre a documentação do Zend Framework incluem a
                formatação dos arquivos de documentação e recomendações sobre a qualidade da
                documentação.
            </para>
        </sect2>
    </sect1>

    <sect1 id="doc-standard.file-formatting">
        <title>Formatação dos Arquivos de Documentação</title>

        <sect2 id="doc-standard.file-formatting.xml-tags">
            <title>Tags XML</title>

            <para>
                Cada arquivo do manual deve incluir as seguintes declarações <acronym>XML</acronym>
                no topo do arquivo:
            </para>

            <programlisting language="xml"><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<!-- Reviewed: no -->
]]></programlisting>

            <para>
                Os arquivos <acronym>XML</acronym> provenientes de traduções devem também incluir
                uma tag de revisão contendo a revisão do arquivo correspondente em inglês na qual a
                tradução se baseou.
            </para>

            <programlisting language="xml"><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 14978 -->
<!-- Reviewed: no -->
]]></programlisting>
        </sect2>

        <sect2 id="doc-standard.file-formatting.max-line-length">
            <title>Comprimento Máximo da Linha</title>

            <para>
                O comprimento máximo da linha, incluindo tags, atributos e indentação, não deve
                exceder 100 caracteres. Existe apenas uma exceção a essa regra: os pares de atributo
                e valor são autorizados a ultrapassar os 100 caracteres, desde que não seja
                permitido estarem separados.
            </para>
        </sect2>

        <sect2 id="doc-standard.file-formatting.indentation">
            <title>Indentação</title>

            <para>
                A indentação deve ser composta por 4 espaços. Tabs não são permitidos.
            </para>

            <para>
                Tags que estão no mesmo nível devem ter a mesma indentação.
            </para>

            <programlisting language="xml"><![CDATA[
<sect1>
</sect1>

<sect1>
</sect1>
]]></programlisting>

            <para>
                Tags que estão um nível abaixo da tag anterior devem ser indentadas com 4 espaços
                adicionais.
            </para>

            <programlisting language="xml"><![CDATA[
<sect1>
    <sect2>
    </sect2>
</sect1>
]]></programlisting>

            <para>
                Vários elementos de bloco dentro de uma mesma linha não são permitidos, no entanto
                vários elementos inline são permitidos.
            </para>

            <programlisting language="xml"><![CDATA[
<!-- NÃO PERMITIDO -->
<sect1><sect2>
</sect2></sect1>

<!-- PERMITIDO -->
<para>
    <classname>Zend_Magic</classname> não existe. <classname>Zend_Acl</classname> existe.
</para>
]]></programlisting>
        </sect2>

        <sect2 id="doc-standard.file-formatting.line-termination">
            <title>Terminação de Linha</title>

            <para>
                A terminação de linha segue a convenção para arquivos de texto do Unix. As linhas
                devem terminar com um simples caractere line feed (LF). Caracteres line feed são
                representados pelo ordinal 10 ou hexadecimal 0x0A.
            </para>

            <para>
                Nota: Não utilize o carriage return (<acronym>CR</acronym>), como na convenção dos
                sistemas operacionais da Apple (0x0D) ou a combinação carriage return - line feed
                (<acronym>CRLF</acronym>) como no padrão para os sistemas operacionais Windows
                (0x0D, 0x0A).
            </para>
        </sect2>

        <sect2 id="doc-standard.file-formatting.empty-tags">
            <title>Tags vazias</title>

            <para>
                Tags vazias não são permitidas; todas as tags devem conter texto ou tags filhas.
            </para>

            <programlisting language="xml"><![CDATA[
<!-- NÃO PERMITIDO -->
<para>
    Algum texto. <link></link>
</para>

<para>
</para>
]]></programlisting>
        </sect2>

        <sect2 id="doc-standard.file-formatting.whitespace">
            <title>Uso de espaços em branco dentro de documentos</title>

            <sect3 id="doc-standard.file-formatting.whitespace.trailing">
                <title>Espaço em branco dentro de tags</title>

                <para>
                    Não deve haver nada imediatamente apoś as tags de abertura de elementos de bloco
                    além de uma quebra linha (e a indentação na linha seguinte).
                </para>

                <programlisting language="xml"><![CDATA[
<!-- NÃO PERMITIDO -->
<sect1>ESPAÇO
</sect1>
]]></programlisting>

                <para>
                    Não deve haver espaço em branco imediatamente após as tags de abertura de
                    elementos inline.
                </para>

                <programlisting language="xml"><![CDATA[
<!-- NÃO PERMITIDO -->
Esta é a classe <classname> Zend_Class</classname>.

<!-- PERMITIDO -->
Esta é a classe <classname>Zend_Class</classname>.
]]></programlisting>

                <para>
                    As tags de fechamento de elementos de bloco podem ser precedidos por espaços em
                    branco equivalentemente ao nível atual de indentação, mas não mais do que isso.
                </para>

                <programlisting language="xml"><![CDATA[
<!-- NÃO PERMITIDO -->
    <sect1>
     </sect1>

<!-- PERMITIDO -->
    <sect1>
    </sect1>
]]></programlisting>

                <para>
                    As tags de fechamento de elementos inline não devem ser precedidas por nenhum
                    espaço em branco.
                </para>

                <programlisting language="xml"><![CDATA[
<!-- NÃO PERMITIDO -->
Esta é a classe <classname>Zend_Class </classname>

<!-- PERMITIDO -->
Esta é a classe <classname>Zend_Class</classname>
]]></programlisting>
            </sect3>

            <sect3 id="doc-standard.file-formatting.whitespace.multiple-line-breaks">
                <title>Várias quebras de linha</title>

                <para>
                    Várias quebras de linha dentro ou entre as tags não são permitidas.
                </para>

                <programlisting language="xml"><![CDATA[
<!-- NÃO PERMITIDO -->
<para>
    Algum texto...

    ... e mais texto
</para>


<para>
    Outro parágrafo.
</para>

<!-- PERMITIDO -->
<para>
    Algum texto...
    ... e mais texto
</para>

<para>
    Outro parágrafo.
</para>
]]></programlisting>
            </sect3>

            <sect3 id="doc-standard.file-formatting.whitespace.tag-separation">
                <title>Separação entre as tags</title>

                <para>
                    Tags em um mesmo nível devem ser separadas por uma linha em branco para melhorar
                    a legibilidade.
                </para>

                <programlisting language="xml"><![CDATA[
<!-- NÃO PERMITIDO -->
<para>
    Algum texto...
</para>
<para>
    Mais texto...
</para>

<!-- PERMITIDO -->
<para>
    Algum texto...
</para>

<para>
    Mais texto...
</para>
]]></programlisting>

                <para>
                    O primeiro elemento filho de ser aberto diretamente abaixo de seu pai, sem linha
                    vazia entre eles. O último elemento filho deve ser fechado diretamente antes da
                    tag de fechamento de seu pai.
                </para>

                <programlisting language="xml"><![CDATA[
<!-- NÃO PERMITIDO -->
<sect1>

    <sect2>
    </sect2>

    <sect2>
    </sect2>

    <sect2>
    </sect2>

</sect1>

<!-- PERMITIDO -->
<sect1>
    <sect2>
    </sect2>

    <sect2>
    </sect2>

    <sect2>
    </sect2>
</sect1>
]]></programlisting>
            </sect3>
        </sect2>

        <sect2 id="doc-standard.file-formatting.program-listing">
            <title>Códigos de Exemplo</title>

            <para>
                A tag de abertura de <emphasis>&lt;programlisting&gt;</emphasis> deve indicar o
                atributo "language" adequado e ser indentado no mesmo nível que seus blocos irmãos.
            </para>

            <programlisting language="xml"><![CDATA[
<para>Parágrafo irmão.</para>

<programlisting language="php">]]>&lt;<![CDATA[![CDATA[
]]></programlisting>

            <para>
                <acronym>CDATA</acronym> deve ser usado junto de todos os códigos de exemplo.
            </para>

            <para>
                As seções de <emphasis>&lt;programlisting&gt;</emphasis> não devem conter quebras de
                linha ou espaços em branco no início ou no final da seção, uma vez que estas são
                representadas no resultado final.
            </para>

            <programlisting language="xml"><![CDATA[
<!-- NÃO PERMITIDO -->
<programlisting language="php">]]>&lt;<![CDATA[![CDATA[

$render = "xxx";

]]]]>&gt;<![CDATA[</programlisting>

<!-- PERMITIDO -->
<programlisting language="php">]]>&lt;<![CDATA[![CDATA[
$render = "xxx";
]]]]>&gt;<![CDATA[</programlisting>
]]></programlisting>

            <para>
                As tags de fechamento de <acronym>CDATA</acronym> e
                <emphasis>&lt;programlisting&gt;</emphasis> devem estar na mesma linha, sem qualquer
                indentação.
            </para>

            <programlisting language="xml"><![CDATA[
<!-- NÃO PERMITIDO -->
    <programlisting language="php">]]>&lt;<![CDATA[![CDATA[
$render = "xxx";
]]]]>&gt;<![CDATA[
    </programlisting>

<!-- NÃO PERMITIDO -->
    <programlisting language="php">]]>&lt;<![CDATA[![CDATA[
$render = "xxx";
    ]]]]>&gt;<![CDATA[</programlisting>

<!-- PERMITIDO -->
    <programlisting language="php">]]>&lt;<![CDATA[![CDATA[
$render = "xxx";
]]]]>&gt;<![CDATA[</programlisting>
]]></programlisting>

            <para>
                A tag <emphasis>&lt;programlisting&gt;</emphasis> deve conter o atributo "language"
                com um valor correspondente ao conteúdo do código de exemplo. Os valores típicos
                incluem "css", "html", "ini", "javascript", "php", "text", e "xml".
            </para>

            <programlisting language="xml"><![CDATA[
<!-- PHP -->
<programlisting language="php">]]>&lt;<![CDATA[![CDATA[

<!-- Javascript -->
<programlisting language="javascript">]]>&lt;<![CDATA[![CDATA[

<!-- XML -->
<programlisting language="xml">]]>&lt;<![CDATA[![CDATA[
]]></programlisting>

            <para>
                Para códigos de exemplo que contenham apenas código <acronym>PHP</acronym>, as tags
                do <acronym>PHP</acronym> (por exemplo, "&lt;?php", "?&gt;") não são necessárias, e
                não devem ser usadas. Elas dificultam a legibilidade do código, e estão implícitas
                no uso do elemento <emphasis>&lt;programlisting&gt;</emphasis>.
            </para>

            <programlisting language="xml"><![CDATA[
<!-- NÃO PERMITIDO -->
<programlisting language="php"]]>&lt;<![CDATA[![CDATA[<?php
    // ...
?>]]]]>&gt;<![CDATA[</programlisting>

<programlisting language="php"]]>&lt;<![CDATA[![CDATA[
<?php
    // ...
?>
]]]]>&gt;<![CDATA[</programlisting>
]]></programlisting>

            <para>
                Os comprimentos de linha dentro de códigos de exemplo devem seguir as <link
                    linkend="coding-standard.php-file-formatting.max-line-length">recomendações das
                    normas de codificação</link>.
            </para>

            <para>
                Evite utilizar <methodname>require_once()</methodname>,
                <methodname>require()</methodname>, <methodname>include_once()</methodname>, e
                <methodname>include()</methodname> dentro de exemplos em <acronym>PHP</acronym>.
                Eles dificultam a legibilidade do código, e são basicamente evitados quando
                utiliza-se um carregador automático. Use-os apenas quando forem essenciais ao
                exemplo.
            </para>

            <note>
                <title>Nunca utilize tags curtas</title>

                <para>
                    Tags curtas (por exemplo, "&lt;?", "&lt;?=") nunca devem ser usadas dentro do
                    elemento <emphasis>programlisting</emphasis> ou no restante da documentação.
                </para>
            </note>
        </sect2>

        <sect2 id="doc-standard.file-formatting.inline-tags">
            <title>Notas sobre elementos inline específicos</title>

            <sect3 id="doc-standard.file-formatting.inline-tags.classname">
                <title>classname</title>

                <para>
                    O elemento <emphasis>&lt;classname&gt;</emphasis> deve ser usado cada vez que um
                    nome de classe é representado sozinho. Não deve ser usado quando combinado com
                    um nome de método, nome de variável ou constante, e nenhum outro conteúdo é
                    permitido dentro do elemento.
                </para>

                <programlisting language="xml"><![CDATA[
<para>
    A classe <classname>Zend_Class</classname>.
</para>
]]></programlisting>
            </sect3>

            <sect3 id="doc-standard.file-formatting.inline-tags.varname">
                <title>varname</title>

                <para>
                    Variáveis devem ser envolvidas pelo elemento
                    <emphasis>&lt;varname&gt;</emphasis>. As variáveis devem ser escritas usando o
                    símbolo "$". Nenhum outro conteúdo é permitido dentro deste elemento, exceto se
                    um nome de classe é usado, o que indica uma variável de classe.
                </para>

                <programlisting language="xml"><![CDATA[
<para>
    A variável <varname>$var</varname> e a variável de classe
    <varname>Zend_Class::$var</varname>.
</para>
]]></programlisting>
            </sect3>

            <sect3 id="doc-standard.file-formatting.inline-tags.methodname">
                <title>methodname</title>

                <para>
                    Métodos devem ser envolvidos pelo elemento
                    <emphasis>&lt;methodname&gt;</emphasis>. Os métodos devem ou incluir sua
                    assinatura completa ou pelo menos um par de parênteses (por exemplo, "()").
                    Nenhum outro conteúdo é permitido dentro do elemento, exceto se um nome de
                    classe é usado, o que indica um método de classe.
                </para>

                <programlisting language="xml"><![CDATA[
<para>
    O método <methodname>foo()</methodname> e o método de classe
    <methodname>Zend_Class::foo()</methodname>. Um método com uma assinatura
    completa: <methodname>foo($bar, $baz)</methodname>
</para>
]]></programlisting>
            </sect3>

            <sect3 id="doc-standard.file-formatting.inline-tags.constant">
                <title>constant</title>

                <para>
                    Use o elemento <emphasis>&lt;constant&gt;</emphasis> quando designar constantes.
                    As constantes devem ser escritas em <acronym>MAIÚSCULAS</acronym>. Nenhum outro
                    conteúdo é permitido dentro deste elemento, exceto se um nome de classe é usado,
                    o que indica uma constante de classe.
                </para>

                <programlisting language="xml"><![CDATA[
<para>
    A constante <constant>FOO</constant> e a constante de classe
    <constant>Zend_Class::FOO</constant>.
</para>
]]></programlisting>
            </sect3>

            <sect3 id="doc-standard.file-formatting.inline-tags.filename">
                <title>filename</title>

                <para>
                    Nomes de arquivos e caminhos devem ser envolvidos pelo elemento
                    <emphasis>&lt;filename&gt;</emphasis>. Nenhum outro conteúdo é permitido neste
                    elemento.
                </para>

                <programlisting language="xml"><![CDATA[
<para>
    O nome de arquivo <filename>application/Bootstrap.php</filename>.
</para>
]]></programlisting>
            </sect3>

            <sect3 id="doc-standard.file-formatting.inline-tags.command">
                <title>command</title>

                <para>
                    Comandos, shell scripts e chamadas de programa devem ser envolvidos pelo
                    elemento <emphasis>&lt;command&gt;</emphasis>. Se o comando incluir argumentos,
                    estes também devem ser incluídos dentro do elemento.
                </para>

                <programlisting language="xml"><![CDATA[
<para>
    Execute <command>zf.sh create project</command>.
</para>
]]></programlisting>
            </sect3>

            <sect3 id="doc-standard.file-formatting.inline-tags.code">
                <title>code</title>

                <para>
                    O uso do elemento <emphasis>&lt;code&gt;</emphasis> é desencorajado, em favor
                    dos outros elementos inline discutidos anteriormente.
                </para>
            </sect3>
        </sect2>

        <sect2 id="doc-standard.file-formatting.block-tags">
            <title>Notas sobre elementos de bloco específicos</title>

            <sect3 id="doc-standard.file-formatting.block-tags.title">
                <title>title</title>

                <para>
                    O elemento <emphasis>&lt;title&gt;</emphasis> não permite ter elementos filhos.
                </para>

                <programlisting language="xml"><![CDATA[
<!-- NÃO PERMITIDO -->
<title>Usando <classname>Zend_Class</classname></title>

<!-- PERMITIDO -->
<title>Usando Zend_Class</title>
]]></programlisting>
            </sect3>
        </sect2>
    </sect1>

    <sect1 id="doc-standard.recommendations">
        <title>Recomendações</title>

        <sect2 id="doc-standard.recommendations.editors">
            <title>Use editores sem formatação automática</title>

            <para>
                Para editar a documentação, normalmente você não deve usar os editores
                <acronym>XML</acronym> clássicos. Esses editores geralmente formatam automaticamente
                os documentos existentes para que se adaptem as suas próprias normas e/ou não seguem
                rigorosamente o padrão docbook. Como exemplos, já os vimos apagar as tags
                <acronym>CDATA</acronym>, substituírem 4 espaços por tabs ou 2 espaços etc.
            </para>

            <para>
                Estas diretrizes foram escritas em grande parte para auxiliar os tradutores no
                reconhecimento das linhas que foram alteradas usando as ferramentas de
                <command>diff</command> normais. A formatação automática torna esse processo mais
                difícil.
            </para>
        </sect2>

        <sect2 id="doc-standard.recommendations.images">
            <title>Use Imagens</title>

            <para>
                Boas imagens e diagramas podem melhorar a legibilidade e a compreensão. Use-as
                sempre que ajudarem nesses objetivos. Imagens devem ser colocadas no diretório
                <filename>documentation/manual/en/figures/</filename>, e nomeadas após o
                identificador de seção em que lhes diz respeito.
            </para>
        </sect2>

        <sect2 id="doc-standard.recommendations.examples">
            <title>Use Exemplos de Caso de Uso</title>

            <para>
                Procure por bons casos de uso apresentados pela comunidade, especialmente aqueles
                que são publicados nos comentários de sugestão ou nas listas de discussão. Os
                exemplos frequentemente ilustram a utilização muito melhor do que todo o texto.
            </para>

            <para>
                Ao escrever seus exemplos para inclusão no manual, siga todas as normas de
                codificação e de documentação.
            </para>
        </sect2>

        <sect2 id="doc-standard.recommendations.phpdoc">
            <title>Evite Duplicar o Conteúdo de phpdoc</title>

            <para>
                O manual pretende ser um guia de referência para a utilização do usuário final. A
                duplicação da documentação de phpdoc para componentes e classes de uso interno não é
                desejada, e a documentação deve estar focada na utilização e não no funcionamento
                interno. Em qualquer caso, neste momento, gostaríamos que as equipes de documentação
                se concentrassem na tradução do manual em inglês, e não nos comentários de phpdoc.
            </para>
        </sect2>

        <sect2 id="doc-standard.recommendations.links">
            <title>Use Links</title>

            <para>
                Crie links para outras seções do manual ou para fontes externas em vez de recriar
                documentação.
            </para>

            <para>
                Os links para outras seções do manual podem ser feitos usando o elemento
                <emphasis>&lt;link&gt;</emphasis> (para o qual você deve fornecer o nome do link).
            </para>

            <programlisting language="xml"><![CDATA[
<para>
    "Link" cria um link para uma seção, usando um texto descritivo: <link
        linkend="doc-standard.recommendations.links">documentação sobre os
        links</link>.
</para>
]]></programlisting>

            <para>
                Para criar um link para uma fonte externa, use <emphasis>&lt;ulink&gt;</emphasis>:
            </para>

            <programlisting language="xml"><![CDATA[
<para>
    O <ulink url="http://framework.zend.com/">site do Zend Framework</ulink>.
</para>
]]></programlisting>
        </sect2>
    </sect1>
</appendix>