megakit / laravel-location
此库帮助快速定位用户的位置。
v0.2.0
2018-09-17 14:46 UTC
Requires
- toin0u/geocoder-laravel: ^4.0
This package is auto-updated.
Last update: 2024-09-18 04:10:16 UTC
README
此库帮助您快速定位用户位置。
安装
$ composer require megakit/laravel-location
配置
$ php artisan vendor:publish --provider="MegaKit\Laravel\Location\LocationServiceProvider"
默认配置文件
<?php use MegaKit\Laravel\Location\Resolvers\DefaultLocationResolver; use MegaKit\Laravel\Location\Resolvers\NullSubdomainLocationResolver; use MegaKit\Laravel\Location\Transformers\CountryNameTransformer; return [ 'source' => env('LOCATION_SOURCE', 'chain'), 'transformer' => CountryNameTransformer::class, 'sources' => [ 'chain' => [ 'driver' => 'chain', 'sources' => ['subdomain', 'cookie', 'geo', 'default'], ], 'subdomain' => [ 'driver' => 'subdomain', 'resolver' => NullSubdomainLocationResolver::class, 'url' => env('APP_URL'), ], 'cookie' => [ 'driver' => 'cookie', 'name' => 'laravel_location', ], 'geo' => [ 'driver' => 'geo', 'provider' => env('LOCATION_GEO_PROVIDER', 'chain'), 'cache' => true, 'cache_driver' => env('LOCATION_GEO_CACHE_DRIVER'), 'cache_lifetime' => 0, ], 'default' => [ 'driver' => 'resolver', 'resolver' => DefaultLocationResolver::class, ], ], 'geo' => [ 'providers' => [ 'chain' => [ 'providers' => ['geocoder-php'], ], 'geocoder-php' => [ // ], ], ], ];
用法
您有几种使用此库的选项。
<?php namespace App\Http\Controllers; use Illuminate\Contracts\Container\Container; use Illuminate\Http\Request; use MegaKit\Laravel\Location\Contracts\LocationLocator; use MegaKit\Laravel\Location\Contracts\LocationResolver; use MegaKit\Laravel\Location\Models\Location; class HomeController extends Controller { /** * @param Request $request * @param LocationResolver $locationResolver * @return string */ public function index(Request $request, LocationResolver $locationResolver) { return $locationResolver->resolve($request)->getCountry()->getName(); } /** * @param Location $location * @return string */ public function dependencyInjection(Location $location) { return $location->getCountry()->getName(); } /** * @param Request $request * @return string */ public function request(Request $request) { return $request->location()->getCountry()->getName(); } /** * @param Container $container * @return string */ public function container(Container $container) { return $container->make('location')->getCountry()->getName(); } /** * @param Request $request * @param LocationLocator $locator * @return mixed */ public function locate(Request $request, LocationLocator $locator) { return $locator->locate($request); } }
许可证
此软件包在MIT许可证下发布。有关详情,请参阅附带的LICENSE文件。