Skip to content

Получение данных коллекции фоторафий тега

Dmitry Kuznetsov edited this page Nov 16, 2013 · 3 revisions

Документация: получение данных коллекции фоторафий тега

<?php
$api = new \Yandex\Fotki\Api('{login}');
// загружаем данные по тегу "привет" и загружаем коллекцию его фотографий
$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));