|
@@ -1,5 +1,5 @@
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
-<!-- EN-Revision: 22109 -->
|
|
|
|
|
|
|
+<!-- EN-Revision: 22392 -->
|
|
|
<!-- Reviewed: no -->
|
|
<!-- Reviewed: no -->
|
|
|
<sect1 id="zend.feed.reader">
|
|
<sect1 id="zend.feed.reader">
|
|
|
<title>Zend_Feed_Reader</title>
|
|
<title>Zend_Feed_Reader</title>
|
|
@@ -10,8 +10,8 @@
|
|
|
<para>
|
|
<para>
|
|
|
<classname>Zend_Feed_Reader</classname> ist eine Komponente die verwendet wird um
|
|
<classname>Zend_Feed_Reader</classname> ist eine Komponente die verwendet wird um
|
|
|
<acronym>RSS</acronym> und Atom Feeds jeder Version zu konsumieren, inklusive
|
|
<acronym>RSS</acronym> und Atom Feeds jeder Version zu konsumieren, inklusive
|
|
|
- <acronym>RDF</acronym>/<acronym>RSS</acronym> 1.0, <acronym>RSS</acronym> 2.0 und
|
|
|
|
|
- Atom 0.3/1.0. Die <acronym>API</acronym> für das Empfangen von Feed Daten ist relativ
|
|
|
|
|
|
|
+ <acronym>RDF</acronym>/<acronym>RSS</acronym> 1.0, <acronym>RSS</acronym> 2.0, Atom 0.3
|
|
|
|
|
+ und Atom 1.0. Die <acronym>API</acronym> für das Empfangen von Feed Daten ist relativ
|
|
|
einfach da <classname>Zend_Feed_Reader</classname> in der Lage ist jeden Feed eines
|
|
einfach da <classname>Zend_Feed_Reader</classname> in der Lage ist jeden Feed eines
|
|
|
jeden Typs mit Hilfe der <acronym>API</acronym> nach den angefragten Informationen zu
|
|
jeden Typs mit Hilfe der <acronym>API</acronym> nach den angefragten Informationen zu
|
|
|
durchsuchen. Wenn die typischen Elemente die diese Informationen enthalten nicht
|
|
durchsuchen. Wenn die typischen Elemente die diese Informationen enthalten nicht
|
|
@@ -27,12 +27,11 @@
|
|
|
Erstellung von XPath Abfragen gegen das Dokument Objekt Modell des Feed
|
|
Erstellung von XPath Abfragen gegen das Dokument Objekt Modell des Feed
|
|
|
<acronym>XML</acronym>'s. Das <acronym>DOM</acronym> wird nicht durch eine gekettete
|
|
<acronym>XML</acronym>'s. Das <acronym>DOM</acronym> wird nicht durch eine gekettete
|
|
|
Eigenschaften <acronym>API</acronym> wie bei <classname>Zend_Feed</classname> bekannt
|
|
Eigenschaften <acronym>API</acronym> wie bei <classname>Zend_Feed</classname> bekannt
|
|
|
- gegeben und durch die darunterliegenden <classname>DOMDocument</classname>,
|
|
|
|
|
- <classname>DOMElement</classname> und <classname>DOMXPath</classname> Objekte für eine
|
|
|
|
|
- externe Manipulation bekannt gegeben. Dieser Singular Weg des Parsens ist Konsistent
|
|
|
|
|
- und die Komponente bietet ein Plugin System um dem Feed hinzuzufügen und eine Eintrags
|
|
|
|
|
- Level <acronym>API</acronym> durch das Schreiben von Erweiterungen auf einer ähnlichen
|
|
|
|
|
- Basis.
|
|
|
|
|
|
|
+ gegeben und durch die darunterliegenden DOMDocument, DOMElement und DOMXPath Objekte für
|
|
|
|
|
+ eine externe Manipulation bekannt gegeben. Dieser Singular Weg des Parsens ist
|
|
|
|
|
+ konsistent und die Komponente bietet ein Plugin System um dem Feed hinzuzufügen und eine
|
|
|
|
|
+ Eintrags Level <acronym>API</acronym> durch das Schreiben von Erweiterungen auf einer
|
|
|
|
|
+ ähnlichen Basis.
|
|
|
</para>
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
<para>
|
|
@@ -43,14 +42,14 @@
|
|
|
<acronym>URI</acronym> zu überspringen wenn der Cache gültig ist. Zweitens wird die
|
|
<acronym>URI</acronym> zu überspringen wenn der Cache gültig ist. Zweitens wird die
|
|
|
Feed und Eintrag- Level <acronym>API</acronym> durch einen internen Cache gesichert
|
|
Feed und Eintrag- Level <acronym>API</acronym> durch einen internen Cache gesichert
|
|
|
(nicht persistent) damit wiederholte <acronym>API</acronym> Aufrufe für den gleichen
|
|
(nicht persistent) damit wiederholte <acronym>API</acronym> Aufrufe für den gleichen
|
|
|
- Feed eine zusätzliche Verwendung von <acronym>DOM</acronym>/XPath verhindert.
|
|
|
|
|
|
|
+ Feed eine zusätzliche Verwendung von <acronym>DOM</acronym> oder XPath verhindert.
|
|
|
Drittens erlaubt das Importieren von Feeds von einer <acronym>URI</acronym> den
|
|
Drittens erlaubt das Importieren von Feeds von einer <acronym>URI</acronym> den
|
|
|
- Vorteil von konditionellen <acronym>HTTP</acronym> GET Anfragen was es Servern
|
|
|
|
|
- erlaubt eine leere 304 Anfrage auszulösen wenn der angefragte Fed seit der Zeit zu der
|
|
|
|
|
- er das letzte Mal angefragt wurde, nicht verändert wurde. Im letzten Fall hält eine
|
|
|
|
|
- Instanz von <classname>Zend_Cache</classname> den zuletzt empfangenen Feed zusammen mit
|
|
|
|
|
- dem ETag und dem Last-Modified Header Werten die in der <acronym>HTTP</acronym>
|
|
|
|
|
- Antwort gesendet wurde.
|
|
|
|
|
|
|
+ Vorteil von konditionellen <acronym>HTTP</acronym> <acronym>GET</acronym> Anfragen
|
|
|
|
|
+ welche es Servern erlauben eine leere 304 Anfrage auszulösen wenn der angefragte Feed
|
|
|
|
|
+ seit der Zeit zu der er das letzte Mal angefragt wurde, nicht verändert wurde. Im
|
|
|
|
|
+ letzten Fall hält eine Instanz von <classname>Zend_Cache</classname> den zuletzt
|
|
|
|
|
+ empfangenen Feed zusammen mit dem ETag und dem Last-Modified Header Werten die in der
|
|
|
|
|
+ <acronym>HTTP</acronym> Antwort gesendet wurde.
|
|
|
</para>
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
<para>
|
|
@@ -74,8 +73,8 @@
|
|
|
String, einer Datei, <acronym>URI</acronym> oder einer Instanz des Typs
|
|
String, einer Datei, <acronym>URI</acronym> oder einer Instanz des Typs
|
|
|
<classname>Zend_Feed_Abstract</classname> importiert werden. Das importieren von einer
|
|
<classname>Zend_Feed_Abstract</classname> importiert werden. Das importieren von einer
|
|
|
<acronym>URI</acronym> kann zusätzlich eine konditionelle <acronym>HTTP</acronym>
|
|
<acronym>URI</acronym> kann zusätzlich eine konditionelle <acronym>HTTP</acronym>
|
|
|
- GET Anfrage benützen. Wenn das importieren fehlschlägt, wird eine Exception geworfen.
|
|
|
|
|
- Das Endergebnis wird ein Objekt des Typs
|
|
|
|
|
|
|
+ <acroym>GET</acronym> Anfrage benützen. Wenn das importieren fehlschlägt, wird eine
|
|
|
|
|
+ Exception geworfen. Das Endergebnis wird ein Objekt des Typs
|
|
|
<classname>Zend_Feed_Reader_FeedInterface</classname> sein, die Core Implementation
|
|
<classname>Zend_Feed_Reader_FeedInterface</classname> sein, die Core Implementation
|
|
|
von <classname>Zend_Feed_Reader_Feed_Rss</classname> und
|
|
von <classname>Zend_Feed_Reader_Feed_Rss</classname> und
|
|
|
<classname>Zend_Feed_Reader_Feed_Atom</classname> (<classname>Zend_Feed</classname>
|
|
<classname>Zend_Feed_Reader_Feed_Atom</classname> (<classname>Zend_Feed</classname>
|
|
@@ -157,13 +156,12 @@ $feed = Zend_Feed_Reader::importFeed($zfeed);
|
|
|
<classname>Zend_Feed_Reader</classname> macht sein bestes um Ihnen die Details
|
|
<classname>Zend_Feed_Reader</classname> macht sein bestes um Ihnen die Details
|
|
|
abzunehmen. Wenn man an einem Feed ausserhalb von
|
|
abzunehmen. Wenn man an einem Feed ausserhalb von
|
|
|
<classname>Zend_Feed_Reader</classname> arbeiten muß, kann man das grundsätzliche
|
|
<classname>Zend_Feed_Reader</classname> arbeiten muß, kann man das grundsätzliche
|
|
|
- <classname>DOMDocument</classname> oder <classname>DOMElement</classname> von jeder
|
|
|
|
|
- Klasse extrahieren, oder sogar einen <acronym>XML</acronym> String der sie enthält.
|
|
|
|
|
- Es werden auch Methoden angeboten um das aktuelle <classname>DOMXPath</classname>
|
|
|
|
|
- Objekt (mit allen registrierten Kern und Erweiterungs Namespaces) zu extrahieren, und
|
|
|
|
|
- den richtigen Präfix der in allen XPath Anfragen für den aktuellen Feed oder Eintrag
|
|
|
|
|
- verwendet wird. Die grundsätzlich zu verwenden Methoden (für jedes Objekt) sind
|
|
|
|
|
- <methodname>saveXml()</methodname>, <methodname>getDomDocument()</methodname>,
|
|
|
|
|
|
|
+ DOMDocument oder DOMElement von jeder Klasse extrahieren, oder sogar einen
|
|
|
|
|
+ <acronym>XML</acronym> String der sie enthält. Es werden auch Methoden angeboten um das
|
|
|
|
|
+ aktuelle DOMXPath Objekt (mit allen registrierten Kern und Erweiterungs Namespaces) zu
|
|
|
|
|
+ extrahieren, und den richtigen Präfix der in allen XPath Anfragen für den aktuellen Feed
|
|
|
|
|
+ oder Eintrag verwendet wird. Die grundsätzlich zu verwenden Methoden (für jedes Objekt)
|
|
|
|
|
+ sind <methodname>saveXml()</methodname>, <methodname>getDomDocument()</methodname>,
|
|
|
<methodname>getElement()</methodname>, <methodname>getXpath()</methodname> und
|
|
<methodname>getElement()</methodname>, <methodname>getXpath()</methodname> und
|
|
|
<methodname>getXpathPrefix()</methodname>. Diese erlauben es sich von
|
|
<methodname>getXpathPrefix()</methodname>. Diese erlauben es sich von
|
|
|
<classname>Zend_Feed_Reader</classname> zu lösen und das zu tun was man selbst
|
|
<classname>Zend_Feed_Reader</classname> zu lösen und das zu tun was man selbst
|
|
@@ -180,25 +178,25 @@ $feed = Zend_Feed_Reader::importFeed($zfeed);
|
|
|
|
|
|
|
|
<listitem>
|
|
<listitem>
|
|
|
<para>
|
|
<para>
|
|
|
- <methodname>getDomDocument()</methodname> gibt das
|
|
|
|
|
- <classname>DOMDocument</classname> Objekt zurück das den kompletten Feed
|
|
|
|
|
- repräsentiert (sogar wenn es von einem Entry Objekt aus aufgerufen wird).
|
|
|
|
|
|
|
+ <methodname>getDomDocument()</methodname> gibt das DOMDocument Objekt zurück das
|
|
|
|
|
+ den kompletten Feed repräsentiert (sogar wenn es von einem Entry Objekt aus
|
|
|
|
|
+ aufgerufen wird).
|
|
|
</para>
|
|
</para>
|
|
|
</listitem>
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
<listitem>
|
|
|
<para>
|
|
<para>
|
|
|
- <methodname>getElement()</methodname> gibt das <classname>DOMElement</classname>
|
|
|
|
|
|
|
+ <methodname>getElement()</methodname> gibt das DOMElement
|
|
|
des aktuellen Objekts zurück (z.B. den Feed oder aktuellen Eintrag).
|
|
des aktuellen Objekts zurück (z.B. den Feed oder aktuellen Eintrag).
|
|
|
</para>
|
|
</para>
|
|
|
</listitem>
|
|
</listitem>
|
|
|
|
|
|
|
|
<listitem>
|
|
<listitem>
|
|
|
<para>
|
|
<para>
|
|
|
- <methodname>getXpath()</methodname> gibt das aktuelle
|
|
|
|
|
- <classname>DOMXPath</classname> Objekt für den aktuellen Feed zurück (sogar wenn
|
|
|
|
|
- es von einem Entry Objekt aus aufgerufen wird) mit den Namespaces des aktuellen
|
|
|
|
|
- Feed Typs und allen vor-registrierten geladenen Erweiterungen.
|
|
|
|
|
|
|
+ <methodname>getXpath()</methodname> gibt das aktuelle DOMXPath Objekt für den
|
|
|
|
|
+ aktuellen Feed zurück (sogar wenn es von einem Entry Objekt aus aufgerufen wird)
|
|
|
|
|
+ mit den Namespaces des aktuellen Feed Typs und allen vor-registrierten geladenen
|
|
|
|
|
+ Erweiterungen.
|
|
|
</para>
|
|
</para>
|
|
|
</listitem>
|
|
</listitem>
|
|
|
|
|
|
|
@@ -216,10 +214,9 @@ $feed = Zend_Feed_Reader::importFeed($zfeed);
|
|
|
können die von <classname>Zend_Feed_Reader</classname> nicht out of the Box unterstützt
|
|
können die von <classname>Zend_Feed_Reader</classname> nicht out of the Box unterstützt
|
|
|
wird. Beachtenswert ist, das man eine Erweiterungen schreiben und registrieren könnte
|
|
wird. Beachtenswert ist, das man eine Erweiterungen schreiben und registrieren könnte
|
|
|
(wird später behandelt) um das zu bewerkstelligen, aber das ist nicht immer eine
|
|
(wird später behandelt) um das zu bewerkstelligen, aber das ist nicht immer eine
|
|
|
- Garantie für einen schnellen Check. Man muß jeden neuen Namespace beim
|
|
|
|
|
- <classname>DOMXPath</classname> Objekt registrieren bevor es verwendet wird ausser Sie
|
|
|
|
|
- werden vorab von <classname>Zend_Feed_Reader</classname> oder einer Erweiterung
|
|
|
|
|
- registriert.
|
|
|
|
|
|
|
+ Garantie für einen schnellen Check. Man muß jeden neuen Namespace beim DOMXPath Objekt
|
|
|
|
|
+ registrieren bevor es verwendet wird ausser Sie werden vorab von
|
|
|
|
|
+ <classname>Zend_Feed_Reader</classname> oder einer Erweiterung registriert.
|
|
|
</para>
|
|
</para>
|
|
|
|
|
|
|
|
<programlisting language="php"><![CDATA[
|
|
<programlisting language="php"><![CDATA[
|
|
@@ -287,7 +284,7 @@ Zend_Feed_Reader::setCache($cache);
|
|
|
<para>
|
|
<para>
|
|
|
Die große Frage wenn man ofters einen Feed importiert, ist ob er sich geändert hat.
|
|
Die große Frage wenn man ofters einen Feed importiert, ist ob er sich geändert hat.
|
|
|
Wenn ein Cache aktiviert ist, kann man die Unterstützung für <acronym>HTTP</acronym>
|
|
Wenn ein Cache aktiviert ist, kann man die Unterstützung für <acronym>HTTP</acronym>
|
|
|
- Conditional GET hinzufügen um diese Frage zu beantworten.
|
|
|
|
|
|
|
+ Conditional <acronym>GET</acronym> hinzufügen um diese Frage zu beantworten.
|
|
|
</para>
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
<para>
|
|
@@ -328,11 +325,12 @@ $feed = Zend_Feed_Reader::import('http://www.planet-php.net/rdf/');
|
|
|
]]></programlisting>
|
|
]]></programlisting>
|
|
|
|
|
|
|
|
<para>
|
|
<para>
|
|
|
- Im obige Beispiel werden, bei aktivierten <acronym>HTTP</acronym> Conditional GET
|
|
|
|
|
- Anfragen, die Werte der Antwort Header für ETag und Last-Modified mit dem Feed
|
|
|
|
|
- gecacht. Für die nächsten 24 Stunden (die Lebenszeit des Caches) werden Feed am
|
|
|
|
|
- Cache nur dann aktualisiert wenn eine nicht-304 Antwort empfangen wird, die ein
|
|
|
|
|
- gültiges <acronym>RSS</acronym> oder Atom <acronym>XML</acronym> Dokument enthält.
|
|
|
|
|
|
|
+ Im obige Beispiel werden, bei aktivierten <acronym>HTTP</acronym> Conditional
|
|
|
|
|
+ <acronym>GET</acronym> Anfragen, die Werte der Antwort Header für ETag und
|
|
|
|
|
+ Last-Modified mit dem Feed gecacht. Für die nächsten 24 Stunden (die Lebenszeit des
|
|
|
|
|
+ Caches) werden Feed am Cache nur dann aktualisiert wenn eine nicht-304 Antwort
|
|
|
|
|
+ empfangen wird, die ein gültiges <acronym>RSS</acronym> oder Atom
|
|
|
|
|
+ <acronym>XML</acronym> Dokument enthält.
|
|
|
</para>
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
<para>
|
|
@@ -378,11 +376,11 @@ $feed = Zend_Feed_Reader::import(
|
|
|
Das zurückgegebene Objekt ist eine Unterklasse von <classname>ArrayObject</classname>
|
|
Das zurückgegebene Objekt ist eine Unterklasse von <classname>ArrayObject</classname>
|
|
|
welche <classname>Zend_Feed_Reader_Collection_FeedLink</classname> heisst, damit es in
|
|
welche <classname>Zend_Feed_Reader_Collection_FeedLink</classname> heisst, damit es in
|
|
|
ein Array gecastet werden kann, oder damit man es iterieren kann um auf alle erkannten
|
|
ein Array gecastet werden kann, oder damit man es iterieren kann um auf alle erkannten
|
|
|
- Links zuzugreifen. Trotzdem kann man, als einfache Abkürzung, den ersten RSS, RDF oder
|
|
|
|
|
- Atom Link holen indem dessen öffentliche Eigenschaft wie im beiliegenden Beispiel
|
|
|
|
|
- verwendet wird. Andernfalls ist jedes Element von <classname>ArrayObject</classname>
|
|
|
|
|
- ein einfaches Array mit den Schlüsseln "type" und "uri" wobei der Typ "rdf", "rss" oder
|
|
|
|
|
- "atom" sein kann.
|
|
|
|
|
|
|
+ Links zuzugreifen. Trotzdem kann man, als einfache Abkürzung, den ersten
|
|
|
|
|
+ <acronym>RSS</acronym>, <acronym>RDF</acronym> oder Atom Link holen indem dessen
|
|
|
|
|
+ öffentliche Eigenschaft wie im beiliegenden Beispiel verwendet wird. Andernfalls ist
|
|
|
|
|
+ jedes Element von <classname>ArrayObject</classname> ein einfaches Array mit den
|
|
|
|
|
+ Schlüsseln "type" und "uri" wobei der Typ "rdf", "rss" oder "atom" sein kann.
|
|
|
</para>
|
|
</para>
|
|
|
|
|
|
|
|
<programlisting language="php"><![CDATA[
|
|
<programlisting language="php"><![CDATA[
|
|
@@ -407,8 +405,8 @@ if(isset($links->atom)) {
|
|
|
<para>
|
|
<para>
|
|
|
Diese schnelle Methode gibt nur einen Link für jeden Feed Typ zurück, aber Webseiten
|
|
Diese schnelle Methode gibt nur einen Link für jeden Feed Typ zurück, aber Webseiten
|
|
|
können viele Links von jedem Typ enthalten. Möglicherweise ist es eine News Site mit
|
|
können viele Links von jedem Typ enthalten. Möglicherweise ist es eine News Site mit
|
|
|
- einem RSS Feed für jede News Kategorie. Man kann durch alle Links iterieren indem
|
|
|
|
|
- der ArrayObject Iterator verwendet wird.
|
|
|
|
|
|
|
+ einem <acronym>RSS</acronym> Feed für jede News Kategorie. Man kann durch alle Links
|
|
|
|
|
+ iterieren indem der ArrayObject Iterator verwendet wird.
|
|
|
</para>
|
|
</para>
|
|
|
|
|
|
|
|
<programlisting language="php"><![CDATA[
|
|
<programlisting language="php"><![CDATA[
|
|
@@ -428,7 +426,7 @@ foreach ($links as $link) {
|
|
|
verschiedenen Feed und Entry Level Methoden ab Zend Framework 1.10 ein Objekt vom Typ
|
|
verschiedenen Feed und Entry Level Methoden ab Zend Framework 1.10 ein Objekt vom Typ
|
|
|
<classname>Zend_Feed_Reader_Collection_CollectionAbstract</classname> enthalten.
|
|
<classname>Zend_Feed_Reader_Collection_CollectionAbstract</classname> enthalten.
|
|
|
Abgesehen vom speziellen Klassennamen der anbei erklärt wird, ist es nur eine einfache
|
|
Abgesehen vom speziellen Klassennamen der anbei erklärt wird, ist es nur eine einfache
|
|
|
- Subklasse von SPL's <classname>ArrayObject</classname>.
|
|
|
|
|
|
|
+ Subklasse von <acronym>SPL</acronym>'s <classname>ArrayObject</classname>.
|
|
|
</para>
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
<para>
|
|
@@ -449,15 +447,16 @@ foreach ($links as $link) {
|
|
|
<para>
|
|
<para>
|
|
|
Ein einfaches Beispiel hiervon ist
|
|
Ein einfaches Beispiel hiervon ist
|
|
|
<methodname>Zend_Feed_Reader_FeedInterface::getCategories()</methodname>. Wenn es in
|
|
<methodname>Zend_Feed_Reader_FeedInterface::getCategories()</methodname>. Wenn es in
|
|
|
- irgendeinem RSS oder Atom Feed verwendet wird, gibt diese Methode Daten der Kategorie
|
|
|
|
|
- als Container Objekt zurück welches
|
|
|
|
|
|
|
+ irgendeinem <acronym>RSS</acronym> oder Atom Feed verwendet wird, gibt diese Methode
|
|
|
|
|
+ Daten der Kategorie als Container Objekt zurück welches
|
|
|
<classname>Zend_Feed_Reader_Collection_Category</classname> genannt wird. Das Container
|
|
<classname>Zend_Feed_Reader_Collection_Category</classname> genannt wird. Das Container
|
|
|
Objekt wird, für jede Kategorie, drei Felder an Daten enthalten: term, schema und label.
|
|
Objekt wird, für jede Kategorie, drei Felder an Daten enthalten: term, schema und label.
|
|
|
"term" ist der grundsätzliche Name der Kategorie, oft Maschinen lesbar (normalerweise
|
|
"term" ist der grundsätzliche Name der Kategorie, oft Maschinen lesbar (normalerweise
|
|
|
- ein URI Identifikator) und in RSS 2.0 auch bekannt als "domain". "label" ist ein
|
|
|
|
|
- menschlich lesbarer Kategorie Name welcher <acronym>HTML</acronym> Entities unterstützt.
|
|
|
|
|
- In RSS 2.0 gibt es kein Label Attribut deshalb wird es der Bequemlichkeit halber immer
|
|
|
|
|
- auf den selben Wert gesetzt wie der Ausdruck.
|
|
|
|
|
|
|
+ ein <acronym>URI</acronym> Identifikator) und in <acronym>RSS</acronym> 2.0 auch bekannt
|
|
|
|
|
+ als "domain". "label" ist ein menschlich lesbarer Kategorie Name welcher
|
|
|
|
|
+ <acronym>HTML</acronym> Entities unterstützt. In <acronym>RSS</acronym> 2.0 gibt es kein
|
|
|
|
|
+ Label Attribut deshalb wird es der Bequemlichkeit halber immer auf den selben Wert
|
|
|
|
|
+ gesetzt wie der Ausdruck.
|
|
|
</para>
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
<para>
|
|
@@ -484,8 +483,8 @@ foreach ($categories as $cat) {
|
|
|
einfaches Array indem die Methode <methodname>getValues()</methodname> verwendet wird.
|
|
einfaches Array indem die Methode <methodname>getValues()</methodname> verwendet wird.
|
|
|
Das Konzept der "relevantesten" Daten ist offensichtlich ein beurteilter Aufruf. Für
|
|
Das Konzept der "relevantesten" Daten ist offensichtlich ein beurteilter Aufruf. Für
|
|
|
Kategorien bedeutet es die Label der Kategorien (nicht die Typen oder Schemata) wärend
|
|
Kategorien bedeutet es die Label der Kategorien (nicht die Typen oder Schemata) wärend
|
|
|
- es für Autoren der Name des Autors wäre (nicht deren Email Adressen oder die URIs). Das
|
|
|
|
|
- einfache Array ist flach (nur Werte) und durchläuft
|
|
|
|
|
|
|
+ es für Autoren der Name des Autors wäre (nicht deren Email Adressen oder die
|
|
|
|
|
+ <acronym>URI</acronym>s). Das einfache Array ist flach (nur Werte) und durchläuft
|
|
|
<methodname>array_unique</methodname> um doppelte Werte zu entfernen.
|
|
<methodname>array_unique</methodname> um doppelte Werte zu entfernen.
|
|
|
</para>
|
|
</para>
|
|
|
|
|
|
|
@@ -509,12 +508,12 @@ $labels = $categories->getValues();
|
|
|
Das Empfangen von Informationen von einem Feed (wir reden über Einträge und Elemente in
|
|
Das Empfangen von Informationen von einem Feed (wir reden über Einträge und Elemente in
|
|
|
der nächsten Sektion da Sie identischen Prinzipien folgen) verwendet eine klar
|
|
der nächsten Sektion da Sie identischen Prinzipien folgen) verwendet eine klar
|
|
|
definierte <acronym>API</acronym> welche exakt die gleiche ist, unabhängig davon ob der
|
|
definierte <acronym>API</acronym> welche exakt die gleiche ist, unabhängig davon ob der
|
|
|
- angefragte Feed <acronym>RSS</acronym>/<acronym>RDF</acronym>/Atom ist. Das selbe gilt
|
|
|
|
|
- für Sub-Versionen dieser Standards da wir jede einzelne <acronym>RSS</acronym> und Atom
|
|
|
|
|
- Version getestet haben. Wärend sich der darunterliegende <acronym>XML</acronym> Feed
|
|
|
|
|
- substantiell unterscheiden kann, im Sinne von Tags und Elementen die vorhanden sind,
|
|
|
|
|
- versuchen trotzdem alle ähnliche Informationen zu geben und um das alles zu reflektieren
|
|
|
|
|
- werden unterschiede und das Hanteln durch alternative Tags intern von
|
|
|
|
|
|
|
+ angefragte Feed <acronym>RSS</acronym>, <acronym>RDF</acronym> oder Atom ist. Das selbe
|
|
|
|
|
+ gilt für Sub-Versionen dieser Standards da wir jede einzelne <acronym>RSS</acronym> und
|
|
|
|
|
+ Atom Version getestet haben. Wärend sich der darunterliegende <acronym>XML</acronym>
|
|
|
|
|
+ Feed substantiell unterscheiden kann, im Sinne von Tags und Elementen die vorhanden
|
|
|
|
|
+ sind, versuchen trotzdem alle ähnliche Informationen zu geben und um das alles zu
|
|
|
|
|
+ reflektieren werden unterschiede und das Hanteln durch alternative Tags intern von
|
|
|
<classname>Zend_Feed_Reader</classname> behandelt welche einem ein identisches Interface
|
|
<classname>Zend_Feed_Reader</classname> behandelt welche einem ein identisches Interface
|
|
|
für jeden anzeigt. Idealerweise sollte man sich nicht darum kümmern ob ein Feed
|
|
für jeden anzeigt. Idealerweise sollte man sich nicht darum kümmern ob ein Feed
|
|
|
<acronym>RSS</acronym> oder Atom ist, solange man die Informationen extrahieren kann
|
|
<acronym>RSS</acronym> oder Atom ist, solange man die Informationen extrahieren kann
|
|
@@ -524,14 +523,15 @@ $labels = $categories->getValues();
|
|
|
<note>
|
|
<note>
|
|
|
<para>
|
|
<para>
|
|
|
Wärend die Erkennung von Gemeinsamkeiten zwischen den Feed Typen selbst sehr komplex
|
|
Wärend die Erkennung von Gemeinsamkeiten zwischen den Feed Typen selbst sehr komplex
|
|
|
- ist, sollte erwähnt werden das RSS selbst eine konstant strittige "Spezifikation".
|
|
|
|
|
- Das hat seine Wurzeln im originalen RSS 2.0 Dokument welches Doppeldeutigkeiten
|
|
|
|
|
- enthält und die richtige Behandlung alle Elemente nicht im Detail erklärt. Als
|
|
|
|
|
- Ergebnis verwendet diese Komponente riguros die RSS 2.0.11 Spezifikation welche vom
|
|
|
|
|
- RSS Advisory Board veröffentlicht wurde und dessen beigefügtes RSS Best Practices
|
|
|
|
|
- Profil. Keine andere Interpretation von RSS 2.0 wird unterstützt wobei Ausnahmen
|
|
|
|
|
- erlaubt sein können wo es die anwendung der zwei vorher erwähnten Dokumente nicht
|
|
|
|
|
- direkt verhindert.
|
|
|
|
|
|
|
+ ist, sollte erwähnt werden das <acronym>RSS</acronym> selbst eine konstant strittige
|
|
|
|
|
+ "Spezifikation". Das hat seine Wurzeln im originalen <acronym>RSS</acronym> 2.0
|
|
|
|
|
+ Dokument welches Doppeldeutigkeiten enthält und die richtige Behandlung alle
|
|
|
|
|
+ Elemente nicht im Detail erklärt. Als Ergebnis verwendet diese Komponente riguros
|
|
|
|
|
+ die <acronym>RSS</acronym> 2.0.11 Spezifikation welche vom
|
|
|
|
|
+ <acronym>RSS</acronym> Advisory Board veröffentlicht wurde und dessen beigefügtes
|
|
|
|
|
+ <acronym>RSS</acronym> Best Practices Profil. Keine andere Interpretation von
|
|
|
|
|
+ <acronym>RSS</acronym> 2.0 wird unterstützt wobei Ausnahmen erlaubt sein können wo
|
|
|
|
|
+ es die anwendung der zwei vorher erwähnten Dokumente nicht direkt verhindert.
|
|
|
</para>
|
|
</para>
|
|
|
</note>
|
|
</note>
|
|
|
|
|
|
|
@@ -601,8 +601,8 @@ $labels = $categories->getValues();
|
|
|
Gibt die <acronym>URI</acronym> dieses Feeds zurück, welche die gleiche
|
|
Gibt die <acronym>URI</acronym> dieses Feeds zurück, welche die gleiche
|
|
|
sein kann wie die <acronym>URI</acronym> welche verwendet wurde um
|
|
sein kann wie die <acronym>URI</acronym> welche verwendet wurde um
|
|
|
den Feed zu importieren. Es gibt wichtige Fälle in denen sich der Feed
|
|
den Feed zu importieren. Es gibt wichtige Fälle in denen sich der Feed
|
|
|
- Link unterscheiden kann weil die Quell URI aktualisiert wird und
|
|
|
|
|
- geplant ist Sie in Zukunft zu entfernen.
|
|
|
|
|
|
|
+ Link unterscheiden kann weil die Quell <acronym>URI</acronym>
|
|
|
|
|
+ aktualisiert wird und geplant ist Sie in Zukunft zu entfernen.
|
|
|
</entry>
|
|
</entry>
|
|
|
</row>
|
|
</row>
|
|
|
|
|
|
|
@@ -656,7 +656,8 @@ $labels = $categories->getValues();
|
|
|
<entry>
|
|
<entry>
|
|
|
Gibt das Datum zurück an dem der Feed das letzte Mal erstellt wurde. Das
|
|
Gibt das Datum zurück an dem der Feed das letzte Mal erstellt wurde. Das
|
|
|
zurückgegebene Datum ist ein <classname>Zend_Date</classname> Objekt.
|
|
zurückgegebene Datum ist ein <classname>Zend_Date</classname> Objekt.
|
|
|
- Das wird nur von RSS unterstützt - Atom Feeds geben immer NULL zurück.
|
|
|
|
|
|
|
+ Das wird nur von <acronym>RSS</acronym> unterstützt - Atom Feeds geben
|
|
|
|
|
+ immer <constant>NULL</constant> zurück.
|
|
|
</entry>
|
|
</entry>
|
|
|
</row>
|
|
</row>
|
|
|
|
|
|
|
@@ -719,10 +720,13 @@ $labels = $categories->getValues();
|
|
|
|
|
|
|
|
<entry>
|
|
<entry>
|
|
|
Gibt ein Array zurück welches Daten enthält die jedem Feed Bild oder
|
|
Gibt ein Array zurück welches Daten enthält die jedem Feed Bild oder
|
|
|
- Logo angehören oder NULL wenn kein Bild gefunden wurde. Das
|
|
|
|
|
- resultierende Array kann die folgenden Schlüssel enthalten: uri, link,
|
|
|
|
|
- title, description, height, und width. Nur Atom Logos enthalten eine
|
|
|
|
|
- URI so dass die anderen Metadaten nur von RSS Feeds angehören.
|
|
|
|
|
|
|
+ Logo angehören oder <constant>NULL</constant> wenn kein Bild gefunden
|
|
|
|
|
+ wurde. Das resultierende Array kann die folgenden Schlüssel enthalten:
|
|
|
|
|
+ <property>uri</property>, <property>link</property>,
|
|
|
|
|
+ <property>title</property>, <property>description</property>,
|
|
|
|
|
+ <property>height</property>, und <property>width</property>. Nur Atom
|
|
|
|
|
+ Logos enthalten eine <acronym>URI</acronym> so dass die anderen
|
|
|
|
|
+ Metadaten nur von <acronym>RSS</acronym> Feeds angehören.
|
|
|
</entry>
|
|
</entry>
|
|
|
</row>
|
|
</row>
|
|
|
</tbody>
|
|
</tbody>
|
|
@@ -743,7 +747,7 @@ $labels = $categories->getValues();
|
|
|
(Atom kann verwendet werden um die <acronym>RSS</acronym> Syntax anzubieten)? Bei einem
|
|
(Atom kann verwendet werden um die <acronym>RSS</acronym> Syntax anzubieten)? Bei einem
|
|
|
Fehlschlag können wir einfach auf die Einträge sehen, den aktuellsten herausholen, und
|
|
Fehlschlag können wir einfach auf die Einträge sehen, den aktuellsten herausholen, und
|
|
|
sein <command><pubDate></command> Element verwenden. In der Annahme das es
|
|
sein <command><pubDate></command> Element verwenden. In der Annahme das es
|
|
|
- existiert... viele Feeds verwenden auch Dublin Core 1.0/1.1
|
|
|
|
|
|
|
+ existiert... viele Feeds verwenden auch Dublin Core 1.0 oder 1.1
|
|
|
<command><dc:date></command> Elemente für Feeds und Einträge. Oder wir können
|
|
<command><dc:date></command> Elemente für Feeds und Einträge. Oder wir können
|
|
|
wieder ein Atom finden das herumliegt.
|
|
wieder ein Atom finden das herumliegt.
|
|
|
</para>
|
|
</para>
|
|
@@ -773,7 +777,7 @@ $labels = $categories->getValues();
|
|
|
<entry><methodname>getDomDocument()</methodname></entry>
|
|
<entry><methodname>getDomDocument()</methodname></entry>
|
|
|
|
|
|
|
|
<entry>
|
|
<entry>
|
|
|
- Gibt das elterliche <classname>DOMDocument</classname> Objekt für das
|
|
|
|
|
|
|
+ Gibt das elterliche DOMDocument Objekt für das
|
|
|
komplette <acronym>XML</acronym> Quelldokument zurück
|
|
komplette <acronym>XML</acronym> Quelldokument zurück
|
|
|
</entry>
|
|
</entry>
|
|
|
</row>
|
|
</row>
|
|
@@ -782,8 +786,7 @@ $labels = $categories->getValues();
|
|
|
<entry><methodname>getElement()</methodname></entry>
|
|
<entry><methodname>getElement()</methodname></entry>
|
|
|
|
|
|
|
|
<entry>
|
|
<entry>
|
|
|
- Gibt das aktuelle <classname>DOMElement</classname> Objekt des Feed
|
|
|
|
|
- Levels zurück
|
|
|
|
|
|
|
+ Gibt das aktuelle DOMElement Objekt des Feed Levels zurück
|
|
|
</entry>
|
|
</entry>
|
|
|
</row>
|
|
</row>
|
|
|
|
|
|
|
@@ -801,10 +804,9 @@ $labels = $categories->getValues();
|
|
|
<entry><methodname>getXpath()</methodname></entry>
|
|
<entry><methodname>getXpath()</methodname></entry>
|
|
|
|
|
|
|
|
<entry>
|
|
<entry>
|
|
|
- Gibt das intern verwendete <classname>DOMXPath</classname> Objekt
|
|
|
|
|
- zurück mit dem Abfragen auf das <classname>DOMDocument</classname>
|
|
|
|
|
- Objekt durchgeführt werden (das enthält die Kern und Erweiterungs
|
|
|
|
|
- Namespaces die vor-registriert sind)
|
|
|
|
|
|
|
+ Gibt das intern verwendete DOMXPath Objekt zurück mit dem Abfragen auf
|
|
|
|
|
+ das DOMDocument Objekt durchgeführt werden (das enthält die Kern und
|
|
|
|
|
+ Erweiterungs Namespaces die vor-registriert sind)
|
|
|
</entry>
|
|
</entry>
|
|
|
</row>
|
|
</row>
|
|
|
|
|
|
|
@@ -824,8 +826,8 @@ $labels = $categories->getValues();
|
|
|
Gibt die Kodierung des <acronym>XML</acronym> Quelldokuments zurück
|
|
Gibt die Kodierung des <acronym>XML</acronym> Quelldokuments zurück
|
|
|
(Beachte: Das kann nicht verwendet werden für Fehler wie einen
|
|
(Beachte: Das kann nicht verwendet werden für Fehler wie einen
|
|
|
Server der Dokumente in einer anderen Kodierung verschickt). Wo diese
|
|
Server der Dokumente in einer anderen Kodierung verschickt). Wo diese
|
|
|
- nicht definiert ist, wird die Standardkodierung UTF-8 von Unicode
|
|
|
|
|
- angewendet.
|
|
|
|
|
|
|
+ nicht definiert ist, wird die Standardkodierung <acronym>UTF-8</acronym>
|
|
|
|
|
+ von Unicode angewendet.
|
|
|
</entry>
|
|
</entry>
|
|
|
</row>
|
|
</row>
|
|
|
|
|
|
|
@@ -1023,9 +1025,10 @@ $labels = $categories->getValues();
|
|
|
Gibt ein Array zurück welches die Werte aller Attribute eines
|
|
Gibt ein Array zurück welches die Werte aller Attribute eines
|
|
|
Multimedia <enclosure> Elements enthält, inklusive der Array
|
|
Multimedia <enclosure> Elements enthält, inklusive der Array
|
|
|
Schlüssel: <emphasis>url</emphasis>, <emphasis>length</emphasis>,
|
|
Schlüssel: <emphasis>url</emphasis>, <emphasis>length</emphasis>,
|
|
|
- <emphasis>type</emphasis>. Basierend auf dem RSS Best Practices Profile
|
|
|
|
|
- des TSS Advisory Boards, wird keine Unterstützung für mehrere Enclosures
|
|
|
|
|
- angeboten da so eine Unterstützung kein Teil der RSS Spezifikation ist.
|
|
|
|
|
|
|
+ <emphasis>type</emphasis>. Basierend auf dem <acronym>RSS</acronym> Best
|
|
|
|
|
+ Practices Profile des <acronym>RSS</acronym> Advisory Boards, wird keine
|
|
|
|
|
+ Unterstützung für mehrere Enclosures angeboten da so eine Unterstützung
|
|
|
|
|
+ kein Teil der <acronym>RSS</acronym> Spezifikation ist.
|
|
|
</entry>
|
|
</entry>
|
|
|
</row>
|
|
</row>
|
|
|
|
|
|
|
@@ -1139,8 +1142,8 @@ $labels = $categories->getValues();
|
|
|
<entry><methodname>getDomDocument()</methodname></entry>
|
|
<entry><methodname>getDomDocument()</methodname></entry>
|
|
|
|
|
|
|
|
<entry>
|
|
<entry>
|
|
|
- Gibt das elterliche <classname>DOMDocument</classname> Objekt für den
|
|
|
|
|
- kompletten Feed zurück (nicht nur den aktuellen Eintrag)
|
|
|
|
|
|
|
+ Gibt das elterliche DOMDocument Objekt für den kompletten Feed zurück
|
|
|
|
|
+ (nicht nur den aktuellen Eintrag)
|
|
|
</entry>
|
|
</entry>
|
|
|
</row>
|
|
</row>
|
|
|
|
|
|
|
@@ -1148,8 +1151,7 @@ $labels = $categories->getValues();
|
|
|
<entry><methodname>getElement()</methodname></entry>
|
|
<entry><methodname>getElement()</methodname></entry>
|
|
|
|
|
|
|
|
<entry>
|
|
<entry>
|
|
|
- Gibt das <classname>DOMDocument</classname> Objekt für den
|
|
|
|
|
- aktuellen Level des Eintrags zurück
|
|
|
|
|
|
|
+ Gibt das DOMDocument Objekt für den aktuellen Level des Eintrags zurück
|
|
|
</entry>
|
|
</entry>
|
|
|
</row>
|
|
</row>
|
|
|
|
|
|
|
@@ -1157,9 +1159,8 @@ $labels = $categories->getValues();
|
|
|
<entry><methodname>getXpath()</methodname></entry>
|
|
<entry><methodname>getXpath()</methodname></entry>
|
|
|
|
|
|
|
|
<entry>
|
|
<entry>
|
|
|
- Gibt das <classname>DOMXPath</classname> Objekt zurück welches
|
|
|
|
|
- intern verwendet wird um Abfragen auf dem
|
|
|
|
|
- <classname>DOMDocument</classname> Objekt durchzuführen (das enthält
|
|
|
|
|
|
|
+ Gibt das DOMXPath Objekt zurück welches intern verwendet wird um
|
|
|
|
|
+ Abfragen auf dem DOMDocument Objekt durchzuführen (es enthält
|
|
|
auch die vorregistrierten Kern und Erweiterungs Namespaces)
|
|
auch die vorregistrierten Kern und Erweiterungs Namespaces)
|
|
|
</entry>
|
|
</entry>
|
|
|
</row>
|
|
</row>
|
|
@@ -1182,7 +1183,7 @@ $labels = $categories->getValues();
|
|
|
(Achtung: Das kann nicht für Fehler genommen werden bei denen der
|
|
(Achtung: Das kann nicht für Fehler genommen werden bei denen der
|
|
|
Server eine andere Kodierung sendet als die Dokumente). Die Standard
|
|
Server eine andere Kodierung sendet als die Dokumente). Die Standard
|
|
|
Kodierung welche bei Abwesenheit jeglicher anderen Kodierung angewendet
|
|
Kodierung welche bei Abwesenheit jeglicher anderen Kodierung angewendet
|
|
|
- wird, ist die UTF-8 Kodierung von Unicode.
|
|
|
|
|
|
|
+ wird, ist die <acronym>UTF-8</acronym> Kodierung von Unicode.
|
|
|
</entry>
|
|
</entry>
|
|
|
</row>
|
|
</row>
|
|
|
|
|
|
|
@@ -1413,9 +1414,9 @@ $updatePeriod = $syndication->getUpdatePeriod();
|
|
|
Unweigerlich gibt es Zeiten in denen die <acronym>API</acronym> von
|
|
Unweigerlich gibt es Zeiten in denen die <acronym>API</acronym> von
|
|
|
<classname>Zend_Feed_Reader</classname> einfach nicht in der Lage ist etwas das man
|
|
<classname>Zend_Feed_Reader</classname> einfach nicht in der Lage ist etwas das man
|
|
|
von einem Feed oder Eintrag benötigt zu erhalten. Man kann die darunterliegenden
|
|
von einem Feed oder Eintrag benötigt zu erhalten. Man kann die darunterliegenden
|
|
|
- Quell Objekte, wie ein <classname>DOMDocument</classname>, verwenden um Sie
|
|
|
|
|
- von Hand zu erhalten. Trotzdem sind weitere wiederverwendbare Methoden vorhanden
|
|
|
|
|
- indem man Erweiterungen schreibt die diese neuen Abfragen unterstützen.
|
|
|
|
|
|
|
+ Quell Objekte, wie ein DOMDocument, verwenden um Sie von Hand zu erhalten. Trotzdem
|
|
|
|
|
+ sind weitere wiederverwendbare Methoden vorhanden indem man Erweiterungen schreibt
|
|
|
|
|
+ die diese neuen Abfragen unterstützen.
|
|
|
</para>
|
|
</para>
|
|
|
|
|
|
|
|
<para>
|
|
<para>
|