-
Notifications
You must be signed in to change notification settings - Fork 12
Получение данных коллекции фоторафий тега
Dmitry Kuznetsov edited this page Nov 16, 2013
·
3 revisions
Документация: получение данных коллекции фоторафий тега
<?php
$api = new \Yandex\Fotki\Api('{login}');
$api->auth('{token}');
// загружаем данные по тегу "привет" и загружаем коллекцию его фотографий
$collection = $api->getTag('привет')->load()->getPhotosCollection();
// Первый вариант (Настройка фильтра)
try {
// первый вариант
$collection
// выставляем порядок сортировки
->setOrder(\Yandex\Fotki\Api\CollectionAbstract::BY_LAST_UPDATE_DESC)
// ограничиваем кол-во запрашиваемых элементов
->setLimit(15)
->load();
} catch (\Yandex\Fotki\Exception\Api\PhotosCollection $ex) {
}
// Второй вариант (Загрузка всего)
try {
// Отправляется несколько последовательных запросов
$collection->loadAll();
} catch (\Yandex\Fotki\Exception\Api\PhotosCollection $ex) {
}
// Третий вариант (ручная загрузка партиями)
try {
$collection
->setLimit(15) // задаем шаг постранички
->load()
->loadNext()
->loadNext(); // и так далее
} catch (\Yandex\Fotki\Exception\Api\StopIteration $ex) {
// Это исключение вызовется, если достигнут конец коллекции
} catch (\Yandex\Fotki\Exception\Api\PhotosCollection $ex) {
}
/** @var \Yandex\Fotki\Api\Photo[] $items */
$items = $collection->getList();
// Дата последнего существенного обновления (с точки зрения Яндекса)
// Можно использовать для проверки актуальных данных в кэше
$collection->getDateUpdated(); // timestamp
$collection->getDateUpdated('d.m.Y');
// Кол-во загруженных объектов
$collection->getCount();
// Реализован интерфейс сериализации
$collection = unserialize(serialize($collection));