[ZF-10089] Zend_Log
[zend.git] / documentation / manual / nl / module_specs / Zend_Feed-CustomFeed.xml
blobc0b8bf4b623d45a1b627200244b5c2b44c23d499
1 <sect1 id="zend.feed.custom-feed">
2     <title>Aangepaste Feed en Entry klassen</title>
4     <para>
5         Naast dit alles is het ook mogelijk om de <code>Zend_Feed</code> klassen uit te breiden wanneer je een eigen formaat of extra's wil aanbieden, zoals automatisch afhandelen van elementen in een aangepaste namespace.
6     </para>
8     <para>
9         Hier is een voorbeeld van een aangepaste Atom entry klasse die zijn eigen <code>myns:</code>
10         namespace behandeld. Merk op dat het ook de oproep <code>registerNamespace()</code> voor je
11         afhandelt, zodanig dat de eindgebruiker zich helemaal niet met namespaces hoeft bezig te houden.
12     </para>
14     <example>
15         <title>De Atom Entry Class uitbreiden met aangepaste Namespaces</title>
16         <programlisting role="php"><![CDATA[
17 <?php
19 /**
20  * De aangepaste entry klasse kent automatisch de feed URI (optioneel) en
21  * kan automatisch extra namespaces toevoegen.
22  */
23 class MyEntry extends Zend_Feed_Entry_Atom
26     public function __construct($uri = 'http://www.example.com/myfeed/',
27                                 $xml = null)
28     {
29         parent::__construct($uri, $xml);
31         Zend_Feed::registerNamespace('myns', 'http://www.example.com/myns/1.0');
32     }
34     public function __get($var)
35     {
36         switch ($var) {
37             case 'myUpdated':
38                 // Vertaal myUpdated naar myns:updated.
39                 return parent::__get('myns:updated');
41             default:
42                 return parent::__get($var);
43             }
44     }
46     public function __set($var, $value)
47     {
48         switch ($var) {
49             case 'myUpdated':
50                 // Vertaal myUpdated naar myns:updated.
51                 parent::__set('myns:updated', $value);
52                 break;
54             default:
55                 parent::__set($var, $value);
56         }
57     }
61 ?>]]>   </programlisting>
62         <para>
63             Om deze klasse nu te gebruiken moet je ze gewoon direct instantiĆ«ren en de <code>myUpdated</code>
64             eigenschap zetten:
65         </para>
66         <programlisting role="php"><![CDATA[
67 <?php
69 $entry = new MyEntry();
70 $entry->myUpdated = '2005-04-19T15:30';
72 ?>]]>       </programlisting>
73     </example>
75 </sect1>
76 <!--
77 vim:se ts=4 sw=4 et:
78 -->