bigperson / laravel-vk-geo
Parse countries, regions and cities from vk.com api
Requires
- php: >=5.5.9
- atehnix/vk-client: ^1.0.0
- laravel/framework: ~5.2.0|~5.3.0|~5.4.0|~5.5.0|~5.6.0|~5.7.0|~5.8.0
This package is auto-updated.
Last update: 2024-10-13 00:26:13 UTC
README
Пакет предоставляет удобный способ ипорта стран, регионов и городов используя api vk.com.
Пакет использует atehnix/vk-client для выполнения запросов. Используются синхронные запросы, если вы хотите постоянно обновлять данные, то используйте пакет atehnix/laravel-vk-requester
Содержание
- Установка
- Импорт данных
- Использование
Установка
Вы можете установить данный пакет с помощью сomposer:
composer require bigperson/laravel-vk-geo
Далее необходимо зарегистровать новый сервис-провайдер в config/app.php:
... 'providers' => [ ... Bigperson\VkGeo\VkGeoServiceProvider::class, ], ...
Конфигурация
Сначала необходимо создать необходимые таблицы в базе данных, для этого импортируйте файлы миграций из пакета используя artisan:
php artisan vendor:publish --provider=Bigperson\VkGeo\VkGeoServiceProvider
Также создастся файл конфигурации config/vk-geo.php
. После чего необходимо применить миграции:
php artisan migrate
В .env
необходимо добавить, данные вашего vk приложения:
VKONTAKTE_KEY=
VKONTAKTE_SECRET=
VKONTAKTE_REDIRECT_URI=
Также для выполнения импорта получить токен (Где взять api токен?) приложения и добавить в .env
:
VKONTAKTE_TOKEN=
Либо переопределить токен в config/vk-geo.php
.
Импорт осуществляется через консоль.
Импорт всех стран
php artisan vk:import-countries
Импорт регионов
Импорт регионов для всех стран
php artisan vk:import-regions
Возможен также и импорт для отдельных стран по их id
php artisan vk:import-regions --countryId=1 --countryId=2
Импорт городов
Импорт городов для отдельных стран
php artisan vk:import-cities --countryId=1 --countryId=2
Импорт городов для отдельных регионов
php artisan vk:import-cities --regionId=1014032 --regionId=1048584
Если вам нужен импорт для всех стран и всех регионов, то можно запустить компанду без параметров, но данный способ не тестировался, и скорее всего будут ошибки связанные с ответом от серверов VK. Вы также можете переопределить любую из консольных команд, создав собсвтенные и отнаследовавшись от оригинальных.
Использование
Использовать пакет достаточно просто. В пакет входят eloquent модели города, региона и страны (City, Region, Country). Вы можете вызывать модели в контроллерах:
namespace App\Http\Controllers; use Bigperson\VkGeo\Models\City; class Controller { protected function show($name){ $city = City::where('title', $name)->first(); } }
У каждой модели есть title
, id
, у городов есть area
(район), также настроенны связи между моделями. При необходимости можете также переопределить их.