Пакет-географ: готовий до роботи

Робота над створенням почалася ще в травні, в липні була непогана робоча версія, і ось у грудні у нас:
  • Повна відповідність кодів ISO ISO-3166-1 та ISO-3166-2
  • Можливість вибору системи поділу – ISO FIPS або GeoNames
  • Повне покриття країн і областей світу російськими перекладами
  • Логічна ізоляція даних від коду, відкриваємо дорогу SDK на інших мовах
  • Офіційний сайт документацією російською мовою


Наша мета дуже проста – стати стандартною open-source бібліотекою географічних даних (адміністративних поділів і назв). На сьогодні нічого подібного немає, кожному розробнику доводиться винаходити велосипед заново.

Якщо коротко, то основний плюс від використання бібліотеки Географ, це можливість робити щось на кшталт:
use MenaraSolutions\Geographer\State;
$voronezh = State::build('RU-VOR');
echo "За вікном {$voronezh->getName('ru')}\n";
echo "Іван живе {$voronezh->inflict('in')->getName()}\n";
echo "Олена повернулася {$voronezh->inflict('from')->getName()}\n";
// За вікном Воронезька область
// Іван живе у Воронезькій області
// Олена повернулася з Воронезької області


Якщо ви вважаєте, що це дуже просто, то знайте, що навіть гіганти на кшталт Facebook та VK досі роблять це з помилками! :)

  • В шаблонах не треба думати про правильному предлоге («в», «під», «на» і так далі)
  • Не треба засмічувати базу даних та код вторинним для продукту вмістом
  • База даних постійно правиться силами open-source програмістів (безкоштовно!)


Відділення даних від коду

Важливою відмінністю поточної версії стало розділення репозиторіїв – дані JSON тепер зберігаються як окремий пакет, що дозволяє використовувати вміст в інших мовах програмування. Крім того, виправлення, скажімо, російською мовою будуть викачуватися тільки тими, кому дійсно потрібна російська мова (встановлений пакет з російською мовою в composer.json).

Можливість вибору стандарту

За замовчуванням Географ використовує систему ISO 3166 для розподілу по країнах і областях. ISO – єдиний активно підтримуваний стандарт на сьогодні, тому ми рекомендуємо використовувати його. Тим не менш, стандарт можна вибрати:

$country->setStandard(DefaultManager::STANDARD_ISO); // ISO
$country->setStandard(DefaultManager::STANDARD_FIPS); // FIPS 10-4
$country->setStandard(DefaultManager::STANDARD_GEONAMES); // GeoNames


Участь вітається

Запрошуємо до участі розробників! Географ – перспективний і корисний пакет. Серед пріоритетів SDK для Node.js і Ruby, а також доведення перекладів міст російською до 100%.

Коментарі, критика і будь-які інші види зворотного зв'язку також гаряче вітаються.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.