class Collection extends ArrayObject implements Common

Абстрактный класс для всех коллекций (+ итерируемый)

Methods

__construct(Client $client, array $fields, string $class, int $limit, int $offset)

Конструктор коллекции

$this
setLimit(int $limit)

Установка лимита выборки

$this
load(bool $force = false)

Загрузка коллекции

$this
setOffset(int $offset)

Установка смещения выборки

int
getFullCount()

Получение количества всех элементов без учета лимита

getIterator()

Получение нового инстанса итератора коллекции

int
count()

Количество моделей в коллекции

array
getData()

Получение коллекции в виде массива

reset()

Получение первой модели в коллекции

createModel(array $data = null)

Создание модели по переданным данным

end()

Получение последней модели в коллекции

getClient()

Получение инстанса клиента

int
getLimit()

Получение текущего лимита коллекции

int
getOffset()

Получение текущего смещения коллекции

float
getPages()

Общее количество страниц при заданом лимиите на страницу

Details

at line 104
__construct(Client $client, array $fields, string $class, int $limit, int $offset)

Конструктор коллекции

Parameters

Client $client Инстанс клиента
array $fields Поля для выборки
string $class Класс модели
int $limit Лимит выборки
int $offset Смещение выборки

Пример:

     $token = '7c0c2193d27108a509abd8ea84a8750c82b3a520'; // токен для тестового подписчика

     $client = new Client($token); // инициализация клиента

     $bookCollection = new BookCollection($client, [], '\Lan\Ebs\Sdk\Model\Book', 5, 10); // инициализация коллекции книг

Exceptions

Exception

See also

ArticleCollection::__construct
BookCollection::__construct
IssueCollection::__construct
JournalCollection::__construct
UserCollection::__construct

at line 155
$this setLimit(int $limit)

Установка лимита выборки

Установка/изменение лимита выборки коллекции. Вызывет перезагрузку коллекции если значение лимита изменилось

Parameters

int $limit Значение лимита выборки

Пример:

     $token = '7c0c2193d27108a509abd8ea84a8750c82b3a520'; // токен для тестового подписчика

     $client = new Client($token); // инициализация клиента

     $bookCollection = new BookCollection($client, [], '\Lan\Ebs\Sdk\Model\Book', 5, 100); // инициализация коллекции книг

     $bookCollection->setLimit(100); // изменение лимита с 5 до 100

Return Value

$this Пример:

     echo $bookCollection->setLimit(100)->count(); // Выведет количество элементов коллекции

Exceptions

Exception

at line 206
$this load(bool $force = false)

Загрузка коллекции

Загрузка осуществляется только после вызова зависимого метода (ленивая загрузка)

Parameters

bool $force Заново загружать коллекцию даже если она загружена ранее

Пример:

     $token = '7c0c2193d27108a509abd8ea84a8750c82b3a520'; // токен для тестового подписчика

     $client = new Client($token); // инициализация клиента

     $bookCollection = new BookCollection($client, [], '\Lan\Ebs\Sdk\Model\Book', 5, 100); // инициализация коллекции книг

     // Вызова метода загрузки еще небыло.. коллекция пустая
     $bookCollection->load(); // загрузка коллекции данными
     // Запрос к API выполнен.. коллекция загружена

Return Value

$this Вернет текущую коллекцию

Пример:

      echo $bookCollection->load()->count(); // Выведет количество элементов коллекции

Exceptions

Exception

See also

Collection::setLimit()
Collection::setOffset()
Collection::getFullCount()
Collection::getCount()
Collection::getData()
Collection::reset()
Collection::end()
CollectionIterator::rewind()

at line 261
$this setOffset(int $offset)

Установка смещения выборки

Установка/изменение смещения выборки коллекции. Вызывет перезагрузку коллекции если значение смещения изменилось

Parameters

int $offset Значение смещения выборки

Пример:

     $token = '7c0c2193d27108a509abd8ea84a8750c82b3a520'; // токен для тестового подписчика

     $client = new Client($token); // инициализация клиента

     $bookCollection = new BookCollection($client, [], '\Lan\Ebs\Sdk\Model\Book', 5, 100); // инициализация коллекции книг

     $bookCollection->setOffset(1000); // изменение смещения со 100 до 1000

Return Value

$this Вернет текущую коллекцию

Пример:

     echo $bookCollection->setOffset(1000)->count(); // Выведет количество элементов коллекции

Exceptions

Exception

at line 301
int getFullCount()

Получение количества всех элементов без учета лимита

Вернет общее количество элементов необходимое, например, для вычисления постраничной выборки

Пример:

     $token = '7c0c2193d27108a509abd8ea84a8750c82b3a520'; // токен для тестового подписчика

     $client = new Client($token); // инициализация клиента

     $bookCollection = new BookCollection($client, [], '\Lan\Ebs\Sdk\Model\Book', 5, 100); // инициализация коллекции книг

     echo $bookCollection->getFullCount(); // Вернет количество элементов без учета лимита

Return Value

int Пример:

     echo $bookCollection>getFullCount(); // Вернет, например, 286
     echo $bookCollection->сount(); // Вернет, например, 5
     // Итого получаем ceil($bookCollection>getFullCount() /  $bookCollection>getLimit()) = 58 страниц

Exceptions

Exception

at line 315
CollectionIterator getIterator()

Получение нового инстанса итератора коллекции

Итератор для реализации итерируемой коллекции

Return Value

CollectionIterator Вернет экзепляря итератора текущей коллекции

at line 345
int count()

Количество моделей в коллекции

Фактическое число моделей в коллекции

Пример:

     $token = '7c0c2193d27108a509abd8ea84a8750c82b3a520'; // токен для тестового подписчика

     $client = new Client($token); // инициализация клиента

     $bookCollection = new BookCollection($client, [], '\Lan\Ebs\Sdk\Model\Book', 5, 100); // инициализация коллекции книг

     echo $bookCollection>getFullCount(); // Вернет количество элементов без учета лимита

Return Value

int Пример:

     echo $bookCollection->сount(); // Вернет, например, 5 (но не больше 5 - фактическое количество)

Exceptions

Exception

at line 381
array getData()

Получение коллекции в виде массива

Выгрузка коллекции в массив

Пример:

     $token = '7c0c2193d27108a509abd8ea84a8750c82b3a520'; // токен для тестового подписчика

     $client = new Client($token); // инициализация клиента

     $bookCollection = new BookCollection($client, [], '\Lan\Ebs\Sdk\Model\Book', 1, 10); // инициализация коллекции книг

     print_r($bookCollection->getData()); // Вернет количество элементов без учета лимита

Return Value

array Пример:

[
     'id' => 22445,
     'name' => 'Свадьба. Сцена в одном действии',
     'authors' => 'Чехов А.П.'
]

Exceptions

Exception

at line 397
Model reset()

Получение первой модели в коллекции

Вернет первую модель коллекции.

Return Value

Model

Exceptions

Exception

at line 432
Model createModel(array $data = null)

Создание модели по переданным данным

Создает модель по ее данным

Пример:

     $token = '7c0c2193d27108a509abd8ea84a8750c82b3a520'; // токен для тестового подписчика

     $client = new Client($token); // инициализация клиента

     $bookCollection = new BookCollection($client, [], '\Lan\Ebs\Sdk\Model\Book', 1, 10); // инициализация коллекции книг

     $bookData = [
         'id' => 22445,
         'name' => 'Свадьба. Сцена в одном действии',
         'authors' => 'Чехов А.П.'
     ];

     $book = $bookCollection->createModel($bookData);

Parameters

array $data Данные для создания модели

Return Value

Model Вернет модель на основе данных

Exceptions

Exception

at line 455
Model end()

Получение последней модели в коллекции

Вернет полделнюю модель коллекции.

Return Value

Model

Exceptions

Exception

at line 467
protected Client getClient()

Получение инстанса клиента

Return Value

Client

at line 477
int getLimit()

Получение текущего лимита коллекции

Return Value

int

at line 488
int getOffset()

Получение текущего смещения коллекции

Return Value

int

at line 499
float getPages()

Общее количество страниц при заданом лимиите на страницу

Return Value

float

Exceptions

Exception