В примерах выше в случае успеха возвращается
объект одного из классов, расширяющих Zend_Feed_Abstract, в
зависимости от типа ленты. Если посредством одного из вышеприведенных
методов для импортирования была извлечена лента RSS, то будет возвращен объект
Zend_Feed_Rss. Если же импортируется лента Atom, то
будет возвращен объект Zend_Feed_Atom. Эти методы для импортирования
будут бросать исключение Zend_Feed_Exception в случае ошибки,
такой, как недоступная для чтения или плохо сформированная лента.
Создание собственных лент
Zend_Feed позволяет разработчикам легко создавать
собственные ленты. Вам нужно просто создать массив и импортировать
его в Zend_Feed. Импорт из массива может быть выполнен с помощью
методов Zend_Feed::importArray() или
Zend_Feed::importBuilder(). В последнем методе
массив будет сформирован на лету с помощью специального
источника данных, реализующего интерфейс
Zend_Feed_Builder_Interface.
Вы можете создать экземпляр Zeed_Feed из любого источника
данных, реализующего интерфейс
Zend_Feed_Builder_Interface. Вам нужно только
реализовать методы getHeader() и
getEntries() для того, чтобы можно было
использовать свой объект с
Zend_Feed::importBuilder(). Простой пример -
вы можете использовать компоновщик
Zend_Feed_Builder, который принимает массив в
своем конструкторе, выполняет
некоторую проверку и затем может использоваться в методе
importBuilder(). getEntries()
должен возвращать массив экземпляров
Zend_Feed_Builder_Entry.
Note:
Zend_Feed_Builder служит только в качестве
конкретной реализации для демонстрации использования.
Пользователи должны создавать свои классы, реализующие
интерфейс Zend_Feed_Builder_Interface.
Ниже приведен пример использования
Zend_Feed::importBuilder():
// Импортирование ленты из специального созданного ресурса-компоновщика