แพ็คเกจนี้มีห้องสมุด PHP ที่กำหนดประเทศของที่อยู่ IP
คุณสามารถติดตั้งตำแหน่งทางภูมิศาสตร์ PHP ด้วยนักแต่งเพลงได้อย่างง่ายดาย
composer require divineomega/php-geolocation
การใช้งานทางธรณีวิทยา PHP ที่ง่ายที่สุดคือการสร้างวัตถุตำแหน่งใหม่และเรียกใช้วิธี getCountryByIP
// Get country of the current request's IP address
$ country = ( new Locator )-> getCountryByIP ( $ _SERVER [ ' REMOTE_ADDR ' ]);
// Get country of a specific IP address
$ country = ( new Locator )-> getCountryByIP ( ' 93.184.216.34 ' );
// Returns a Country object
/*
object(DivineOmegaCountriesCountry)#4693 (16) {
["name"]=>
string(13) "United States"
["officialName"]=>
string(24) "United States of America"
// etc...
}
*/ คุณสามารถกำหนดค่าตำแหน่งทางภูมิศาสตร์ PHP เพื่อใช้ห้องสมุดแคชที่สอดคล้องกับ PSR-6 ทำได้ง่ายโดยใช้วิธี setCache
ตัวอย่างต่อไปนี้กำหนดค่าแคชไฟล์ (จัดทำโดยแพ็คเกจ cache/filesystem-adapter )
use League Flysystem Adapter Local ;
use League Flysystem Filesystem ;
use Cache Adapter Filesystem FilesystemCachePool ;
$ filesystemAdapter = new Local ( __DIR__ . ' / ' );
$ filesystem = new Filesystem ( $ filesystemAdapter );
$ cachePool = new FilesystemCachePool ( $ filesystem );
$ locator = new Locator ;
$ locator -> setCache ( $ cachePool );
$ country = $ locator -> getCountryByIP ( ' 93.184.216.34 ' ); โดยค่าเริ่มต้นการตั้งค่าทางภูมิศาสตร์ PHP จะพยายามใช้คำสั่ง whois ดั้งเดิมของระบบปฏิบัติการเพื่อกำหนดที่อยู่ IP หากคุณต้องการคุณสามารถใช้ผู้ให้บริการตำแหน่งทางเลือก สิ่งนี้สามารถทำได้โดยใช้วิธี setLocationProvider ดังนี้
$ locator = new Locator ;
$ locator -> setLocationProvider ( new IpStack ( ' my_ip_stack_api_key ' );
$ country = $ locator -> getCountryByIP ( ' 93.184.216.34 ' );เพื่อรับคีย์ API ฟรีลงทะเบียนที่เว็บไซต์ของ IP Stack
หากคุณต้องการพัฒนาผู้ให้บริการตำแหน่งของคุณเองเพียงสร้างคลาสใหม่ที่ใช้ LocationProviderInterface ที่ให้ไว้ในแพ็คเกจนี้ ดูคลาส WhoIs และ FreeGeoIP ที่มีอยู่ในชั้นเรียนผู้ให้บริการตำแหน่งหากคุณต้องการความช่วยเหลือในการสร้างผู้ให้บริการตำแหน่งของคุณเอง