dekiakbar / indonesia-regions-php-client
此包将从https://bps.go.id检索并提取印度尼西亚地区的信息
1.2.1
2021-03-22 16:08 UTC
Requires
- php: ^7.2|^7.3|^7.4|^8.0
- ext-curl: *
- ext-json: *
- illuminate/support: ^5.5|^6.0|^7.0|^8.0|^9.0
Requires (Dev)
- phpunit/phpunit: ^8.0
README
关于印度尼西亚地区PHP客户端
目录
先决条件
在安装此包之前,请确保满足以下要求
PHP >= 7.2
ext-json
ext-curl
docker (optional)
docker-compose (optional)
开发(Docker)
对于开发,您可以使用此项目的Docker容器,以下是在本地环境中重现Docker环境的步骤
- 克隆此仓库:
git clone https://github.com/dekiakbar/indonesia-regions-php-client.git - 导航到项目目录:
cd indonesia-regions-php-client - 然后运行:
docker-compose up -d - 等待几分钟,Docker镜像将自动构建,构建完成后,您将得到一个名为indonesia-regions-php-client_app的镜像和一个名为indonesia-regions-php-client_app_1和indonesia-regions-php-client_mysql_1的容器。
- 检查容器是否已启动,您可以运行:
docker ps -a - 如果容器未运行,您可以运行:
docker start indonesia-regions-php-client_app_1和docker start indonesia-regions-php-client_mysql_1 - 您可以运行交互式shell(SSH):
docker exec -it indonesia-regions-php-client_app_1 /bin/bash - 注意
- indonesia-regions-php-client_app_1容器用于挂载项目目录。
- indonesia-regions-php-client_mysql_1容器用于保存项目数据库。
- indonesia-regions-php-client_app_1容器的默认Docker工作目录是app。
- app目录是从宿主机的indonesia-regions-php-client目录挂载的,因此如果您在宿主机操作系统中的indonesia-regions-php-client中编辑文件,则Docker中的文件将更改或反之亦然。我让Docker容器将项目根目录(即indonesia-regions-php-client)挂载到app的原因是我太懒了,不想从Docker挂载文件,因此如果从indonesia-regions-php-client根目录挂载文件,我就可以直接从我的IDE中直接编辑文件😝
安装
$ composer require dekiakbar/indonesia-regions-php-client- 完成。
用法
- 您可以将参数传递给方法,此包有3种模式
- 对于BPS和POS模式,您可以使用BPS Id/Code来检索省份/城市/区/村庄数据。但是,如果您使用的是dagri模式,则不能使用BPS Id/Code来检索省份/城市/区/村庄数据,请使用dagri Id/code来检索省份/城市/区/村庄数据。
- 如果模式为NULL,则方法将使用默认模式,默认模式是bps。
- bps:仅返回省份/城市/区/村庄的kode和nama。
- dagri:返回省份/城市/区/村庄的kode_bps、nama_bps、kode_dagri和nama_dagri。
- pos : 返回值:kode_bps,nama_bps,kode_pos,nama_pos(省份/城市/街道/村庄)。
注意
-
并非所有方法总是返回
list和detail对象,在某些方法中,可能只返回list或detail,您在使用响应之前必须再次检查。. -
如果您只需要数据(不打算使用此API),请将数据库转储导入到
export文件夹中,解压indonesia_regions_pos.tar.gz并将其导入到您的数据库中。 -
如果您想以Dagri模式检索数据,请用有效的数据填写Parent Id(省份Id / 城市Id / 街道Id)。POS和Dagri的Parent Id不同。您可以从
$region->getCityListByProvinceId('pos',$provinceId)->list中获取城市Id(kode)。 -
请记住,如果您想获取任何数据,您必须使用从
list集合中获取的父Id(省份Id / 城市Id / 街道Id),而不是从详细集合中获取(如果您使用详细中的ID,它将起作用,但您将获得重复数据)。 -
检索所有省份数据
require_once __DIR__ . '/vendor/autoload.php'; use Dekiakbar\IndonesiaRegionsPhpClient\Region; $region = new Region(); print_r( $region->getAllProvince('pos') ); // will return something like : stdClass Object ( [detail] => Array ( [0] => stdClass Object ( [kode_bps] => 11 [nama_bps] => ACEH [kode_pos] => 20000 [nama_pos] => ACEH ) [1] => stdClass Object ( [kode_bps] => 51 [nama_bps] => BALI [kode_pos] => 80000 [nama_pos] => BALI ) ) [list] => Array ( [0] => stdClass Object ( [kode] => 11 [nama] => ACEH ) [1] => stdClass Object ( [kode] => 12 [nama] => SUMATERA UTARA ) ) )
-
通过省份Id检索城市列表
require_once __DIR__ . '/vendor/autoload.php'; use Dekiakbar\IndonesiaRegionsPhpClient\Region; $region = new Region(); // province Id from $region->getAllProvince('bps') $provinceId = 32; print_r( $region->getCityListByProvinceId('pos',$provinceId) ); // will return something like : stdClass Object ( [detail] => Array ( [0] => stdClass Object ( [kode_bps] => 3204 [nama_bps] => BANDUNG [kode_pos] => 40300 [nama_pos] => BANDUNG ) [1] => stdClass Object ( [kode_bps] => 3273 [nama_bps] => BANDUNG [kode_pos] => 40100 [nama_pos] => KOTA BANDUNG ) ) [list] => Array ( [0] => stdClass Object ( [kode] => 3201 [nama] => BOGOR ) [1] => stdClass Object ( [kode] => 3202 [nama] => SUKABUMI ) ) )
-
通过城市Id检索街道列表
require_once __DIR__ . '/vendor/autoload.php'; use Dekiakbar\IndonesiaRegionsPhpClient\Region; $region = new Region(); // POS // city Id from $region->getCityListByProvinceId('pos',$provinceId)->list $cityId = 3273; print_r( $region->getSubdistrictListByCityId('pos',$cityId) ); // will return something like : stdClass Object ( [detail] => Array ( [0] => stdClass Object ( [kode_bps] => 3273180 [nama_bps] => ANDIR [kode_pos] => 40181 [nama_pos] => Andir ) [1] => stdClass Object ( [kode_bps] => 3273180 [nama_bps] => ANDIR [kode_pos] => 40182 [nama_pos] => Andir ) ) [list] => Array ( [0] => stdClass Object ( [kode] => 3273010 [nama] => BANDUNG KULON ) [1] => stdClass Object ( [kode] => 3273020 [nama] => BABAKAN CIPARAY ) ) ) // Dagri // city Id from $region->getCityListByProvinceId('dagri',$provinceId)->list $cityId = '32.73'; print_r( $region->getSubdistrictListByCityId('dagri',$cityId) ); // will return something like : stdClass Object ( [detail] => Array ( [0] => stdClass Object ( [kode_bps] => 3273050 [nama_bps] => ASTANAANYAR [kode_dagri] => 32.73.10 [nama_dagri] => ASTANA ANYAR ) [1] => stdClass Object ( [kode_bps] => 3273120 [nama_bps] => UJUNG BERUNG [kode_dagri] => 32.73.26 [nama_dagri] => UJUNGBERUNG ) ) [list] => Array ( [0] => stdClass Object ( [kode] => 32.73.01 [nama] => Sukasari ) [1] => stdClass Object ( [kode] => 32.73.02 [nama] => Coblong ) ) )
-
通过街道Id检索村庄列表
require_once __DIR__ . '/vendor/autoload.php'; use Dekiakbar\IndonesiaRegionsPhpClient\Region; $region = new Region(); // POS // subdistrict Id from $region->getSubdistrictListByCityId('pos',$cityId)->list $subdistrictId = 3273010; print_r( $region->getVillageListBySubdistrictId('pos',$subdistrictId) ); // will return something like : stdClass Object ( [detail] => Array ( [0] => stdClass Object ( [kode_bps] => 3273010005 [nama_bps] => CARINGIN [kode_pos] => 40212 [nama_pos] => Caringin ) [1] => stdClass Object ( [kode_bps] => 3273010007 [nama_bps] => CIBUNTU [kode_pos] => 40212 [nama_pos] => Cibuntu ) ) [list] => Array ( [0] => stdClass Object ( [kode] => 3273010001 [nama] => GEMPOL SARI ) [1] => stdClass Object ( [kode] => 3273010002 [nama] => CIGONDEWAH KALER ) ) ) // Dagri // subdistrict Id from $region->getSubdistrictListByCityId('dagri',$cityId)->list $subdistrictId = '32.73.10'; print_r( $region->getVillageListBySubdistrictId('dagri',$subdistrictId) ); // will return something like : stdClass Object ( [detail] => Array ( [0] => stdClass Object ( [kode_bps] => 3273050001 [nama_bps] => KARASAK [kode_dagri] => 32.73.10.1001 [nama_dagri] => KARASAK ) [1] => stdClass Object ( [kode_bps] => 3273050002 [nama_bps] => PELINDUNG HEWAN [kode_dagri] => 32.73.10.1006 [nama_dagri] => PELINDUNG HEWAN ) ) )
-
检索省份的ISO 3166-2代码
注意:此方法仅适用于省份
require_once __DIR__ . '/vendor/autoload.php'; use Dekiakbar\IndonesiaRegionsPhpClient\Region; $region = new Region(); // Province code get from $region->getAllProvince('bps')->list $provinceId = 32; print_r( $region->getIsoCode($provinceId) ); // will return String, something like : ID-JB
许可证
- MIT许可证
- 版权所有 2020 © Deki Akbar。