Programmer's Reference Guide
| Изменение структуры лент и их сообщений |
Создание собственных классов лент и записей
Вы можете наследовать классы Zend_Feed, если хотите обеспечить
собственный формат или такие улучшения, как автоматическая обработка
элементов, которые должны находиться в специальном пространстве имен.
Здесь приведен пример специального класса сообщения Atom, который управляет
сообщениями в собственным пространстве имен myns:. Обратите
внимание, что он автоматически производит вызов
registerNamespace(), так что конечным пользователям не
нужно будет беспокоиться о пространствах имен.
Пример #1 Расширение класса сообщения Atom с добавлением специальных пространств имен
/**
* Специальный класс сообщения знает URI ленты и может автоматически
* добавлять дополнительные пространства имен
*/
class MyEntry extends Zend_Feed_Entry_Atom
{
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':
// преобразование myUpdated в myns:updated.
return parent::__get('myns:updated');
default:
return parent::__get($var);
}
}
public function __set($var, $value)
{
switch ($var) {
case 'myUpdated':
// преобразование myUpdated в myns:updated.
parent::__set('myns:updated', $value);
break;
default:
parent::__set($var, $value);
}
}
public function __call($var, $unused)
{
switch ($var) {
case 'myUpdated':
// преобразование myUpdated в myns:updated.
return parent::__call('myns:updated', $unused);
default:
return parent::__call($var, $unused);
}
}
}
Далее для использования этого класса просто создаете его экземпляр
и устанавливаете свойство myUpdated:
$entry = new MyEntry();
$entry->myUpdated = '2005-04-19T15:30';
// вызов в виде метода обрабатывается функцией __call
$entry->myUpdated();
// вызов в виде свойства обрабатывается функцией __get
$entry->myUpdated;
| Изменение структуры лент и их сообщений |
Select a Version
Languages Available
Components
Search the Manual
Navigation
- Руководство разработчика
- Руководство разработчика
- Zend_Feed
- Введение
- Импортирование лент с помощью Zend_Feed
- Получение лент из веб-страниц
- Работа с лентой RSS
- Работа с лентой Atom
- Работа с отдельным сообщением ленты Atom
- Изменение структуры лент и их сообщений
- Создание собственных классов лент и записей
