10.8. Eigene Klassen für Feeds und Einträge
Zurück | Kapitel 10. Zend_Feed | Weiter

## 10.8. Eigene Klassen für Feeds und Einträge

Schließlich kannst du die `Zend_Feed` Klasse erweitern, wenn du dein eigenes Format oder Feinheiten wie die automatische Verarbeitung von Elementen, die in deinen eigenen Namensraum enthalten sein sollen, bereit stellen möchtest

Hier ist ein Beispiel einer eigenen Klasse für Atom Einträge, die ihre eigenen Elemente für den `myns:` Namensraum verwendet. Beachte, dass sie auch den `registerNamespace()` Aufruf für dich durchführt, so dass sich der Endbenutzer nicht um Namensräume kümmern muss.

Beispiel 10.7. Die Klasse für Atom Einträge mit einem eigenen Namensraum erweitern

    <?php

    /**
     * Die eigene Klasse für Einträge kennt automatisch die Feed URI (optional)
     * und kann automatisch weitere Namensräume hinzufügen
     */
    class MyEntry extends Zend_Feed_EntryAtom
    {

        public function __construct($uri = 'http://www.example.com/myfeed/',
                                    $xml = null)
        {
            parent::__construct($uri, $xml);

            Zend_Feed::registerNamespace('myns', 'http://www.example.com/myns/1.0');
        }

        public function __get($var)
        {
            switch ($var) {
                case 'myUpdated':
                    // Übersetze myUpdated nach myns:updated.
                    return parent::__get('myns:updated');

                default:
                    return parent::__get($var);
                }
        }

        public function __set($var, $value)
        {
            switch ($var) {
                case 'myUpdated':
                    // Übersetze myUpdated nach myns:updated.
                    parent::__set('myns:updated', $value);
                    break;

                default:
                    parent::__set($var, $value);
            }
        }

    }

    ?>

Um diese Klasse zu verwenden, musst du sie nur direkt instanziieren und die `myUpdated` Eigenschaft setzen.

    <?php

    $entry = new MyEntry();
    $entry->myUpdated = '2005-04-19T15:30';

    ?>

Zurück | Nach oben | Weiter
10.7. Verändern der Feed- und Eintragsstruktur | Zum Anfang | Kapitel 11. Zend_Filter