oleg-chulakov-studio/yii2-sypexgeo

Sypexgeo Yii2 component

2.0.0 2019-08-19 12:53 UTC

README

На основе функционала http://sypexgeo.net.

Sypex Geo - product for location by IP address. Obtaining the IP address, Sypex Geo outputs information about the location of the visitor - country, region, city, geographical coordinates and other in Russian and in English. Sypex Geo use local compact binary database file and works very quickly. For more information visit: https://sypexgeo.net/

Поставляется вместе со справочниками Sypexgeo https://sypexgeo.net/files/SxGeo_Info.zip от 18.05.2017. При изменении справочников следует вручную скачать их и поместить в папку vendor/chulakov/yii2-sypexgeo/src/migrations/data. Перечень файлов:

city.tsv
region.tsv
country.tsv

Установка

  • Для подключения компонента необходимо добавить в composer.json следующие строки:
"require": {
    "oleg-chulakov-studio/yii2-sypexgeo": "~1.0.0"
}
  • Добавить новый контроллер в конфигурационный файл консольной части приложения.
'controllerMap' => [
    ...
    'sypexgeo' => [
        'class' => 'chulakov\sypexgeo\console\controllers\SypexgeoController',
        'importOptions' => [
            'sourceUrl' => 'https://sypexgeo.net/files',  // URL адрес сервера, на котором лежат .dat файлы
            'infoMode' => true,                           // Флаг необходимости вывода информационных сообщений в stdout
            'dataDir' => '@app/runtime/sypexgeo',     // Относительный путь к каталогу, куда сохранять файлы .dat
        ],
    ]
]
  • Добавление переводов
'i18n' => [
    'translations' => [
        'ch/sypexgeo' => [
            'class' => 'yii\i18n\PhpMessageSource',
            'basePath' => '@vendor/oleg-chulakov-studio/yii2-sypexgeo/src/messages',
            'sourceLanguage' => 'en-US',
        ],
    ],
],
  • Выполнить миграции командой
php yii migrate --migrationPath=@vendor/oleg-chulakov-studio/yii2-sypexgeo/src/migrations
  • Выполнить импорт файлов .dat с помощью команды
php yii sypexgeo/import

В дальнейшем данную команду можно использовать для запуска в cron. Команда имеет необязательный параметр type, указав который можно скачать требуемый ZIP файл:

'country'     ->  'SxGeoCountry.zip'
'city_cp1251' ->  'SxGeoCity_cp1251.zip'
'city_utf8'   ->  'SxGeoCity_utf8.zip'
  • Добавить компонент в параметры приложения
'components' => [
    ...
    'sypexgeo' => [
        'class' => 'chulakov\sypexgeo\Sypexgeo',
        'dataFile' => '@app/runtime/sypexgeo/SxGeoCity.dat',     // Относительный путь к файлу .dat
    ]
],