File: Zend_View-Helpers-Json.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 (79 lines) | stat: -rw-r--r-- 3,105 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
<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 24249 -->
<!-- Reviewed: no -->
<sect3 id="zend.view.helpers.initial.json">
    <title>JSON Helfer</title>

    <para>
        Wenn Views erstellt werden die <acronym>JSON</acronym> zurückgeben ist es wichtig auch den
        entsprechenden Antwort-Header zu setzen. Der <acronym>JSON</acronym> View Helfer macht exakt
        das. Zusätzlich schaltet er, standardmäßig, Layouts aus (wenn diese aktuell eingeschaltet
        sind), weil Layouts generell nicht mit <acronym>JSON</acronym> Antworten verwendet werden.
    </para>

    <para>
        Der <acronym>JSON</acronym> Helfer setzt die folgenden Header:
    </para>

    <programlisting language="text"><![CDATA[
Content-Type: application/json
]]></programlisting>

    <para>
        Die meisten <acronym>AJAX</acronym> Bibliotheken sehen nach diesem Header wenn die Antworten
        geparst werden um festzustellen wie der Inhalt handzuhaben ist.
    </para>

    <para>
        Die Verwendung des <acronym>JSON</acronym> Helfers ist sehr geradlienig:
    </para>

    <programlisting language="php"><![CDATA[
<?php echo $this->json($this->data) ?>
]]></programlisting>

    <note>
        <title>Layouts behalten und Encoding einschalten durch Verwendung von Zend_Json_Expr</title>

        <para>
            Jede Methode im <acronym>JSON</acronym> Helfer akzwptiert ein zweites, optionales,
            Argument. Dieses zweite Argument kan ein boolsches Flag sein um Layouts ein- oder
            auszuschalten, oder ein Array von Optionen die an
            <methodname>Zend_Json::encode()</methodname> übergeben und intern verwendet werden um
            Daten zu kodieren.
        </para>

        <para>
            Um Layouts zu behalten muß der zweite Parameter ein boolsches <constant>TRUE</constant>
            sein. Wenn der zweite Parameter ein Array ist, können Layouts behalten werden indem ein
            <property>keepLayouts</property> Schlüssel mit dem boolschen Wert
            <constant>TRUE</constant> eingefügt wird.
        </para>

        <programlisting language="php"><![CDATA[
// Ein boolsches true als zweites Argument aktiviert Layouts:
echo $this->json($this->data, true);

// Oder ein boolsches true als "keepLayouts" Schlüssel:
echo $this->json($this->data, array('keepLayouts' => true));
]]></programlisting>

        <para>
            <classname>Zend_Json::encode</classname> erlaubt es native <acronym>JSON</acronym>
            Ausdrücke zu kodieren indem <classname>Zend_Json_Expr</classname> Objekte verwendet
            werden. Diese Option ist standardmäßig deaktiviert. Um diese Option zu aktivieren, muß
            ein boolsches <constant>TRUE</constant> an den <property>enableJsonExprFinder</property>
            Schlüssel des Options Arrays übergeben werden:
        </para>

        <programlisting language="php"><![CDATA[
<?php echo $this->json($this->data, array(
    'enableJsonExprFinder' => true,
    'keepLayouts'          => true,
)) ?>
]]></programlisting>
    </note>
</sect3>
<!--
vim:se ts=4 sw=4 et:
-->