Коллекции и общие методы

Коллекции

Массивы административных делений (стран, областей, городов) возвращаются в виде коллекций – современной реализации массивов. Вот некоторые из доступных методов коллекций:

$states->sortBy('name'); // Области будут отсортированы по именам
$states->setLocale('ru')->sortBy('name'); // Области будут отсортированы по русским именам
$states->find(['code' => 472039]); // Найти одно и более делений, удовлетворяющих условиям 
$states->findOne(['code' => 472039]); // Вернуть только первое совпадение
$states->findOneByCode(472039); // Метод для удобства

Общие методы на объектах деления

Все объекты умеют следющее:

$object->toArray(); // Возвращает обычный массив со всеми мета-данными
$object->parent(); // Возвращает родителя (город возвращает штат, штат возвращает страну)
$object->getCode(); // Уникальный идентификатор
$object->getShortName(); // Короткое название (если имеется)
$object->getLongName(); // Длинное (стандартное) название
$object->getCodes(); // Массив всех уникальных кодов

К данным можно обращаться разными способами, выбирайте что вам удобнее:

$object->getName(); // Название объекта (при необходимости в склонении и укороченное)
$object->name; // Тоже самое
$object['name']; // Тоже самое
$object->toArray()['name']; // Тоже самое

Стандарты деления

По умолчанию мы используем деление стран по ISO-3166-1 и деление областей по ISO 3166-2. Таким образом, по умолчанию страны и области не имеющие ISO кодов, невидимы. Обращаем внимание на то, что стандарт FIPS 10-4 является устаревшим и более не поддерживается. На него лучше не полагаться – никаких исправлений в нём не предвидется.

Вы можете выбрать стандарт деления методом setStandard:

$country->setStandard(DefaultManager::STANDARD_ISO); // Деления ISO 
$country->setStandard(DefaultManager::STANDARD_FIPS); // Деления FIPS 10-4
$country->setStandard(DefaultManager::STANDARD_GEONAMES); // Деления Geonames

Вызов этих методов повлияет на последующий вызов getStates() и getCountries().