rioastamal / porsi-haji-checker
一个基于号码的朝觐出发信息库
Requires
- php: ^5.5|^7.0
Requires (Dev)
- phpunit/phpunit: ^5.7|^6.0
This package is auto-updated.
Last update: 2024-09-06 12:14:42 UTC
README
关于
朝觐号码检查器是一个简单的库,同时也是基于命令行界面(CLI)的工具,用于检查朝觐号码。输出结果为JSON数据。这个工具可以视为是https://haji.kemenag.go.id/v3/node/955358网页的CLI版本。
以下是作为CLI工具使用的朝觐号码检查器的用法。
$ php bin/porsi-haji-checker.php 3000837XXX
{
"nomor_porsi": "3000837XXX",
"nama": "HAMBA ALLAH INDONESIA",
"kabupaten_kota": "KOTA SURABAYA",
"provinsi": "JAWA TIMUR",
"kuota": "12345",
"posisi_porsi_kuota": "12233",
"perkiraan_tahun_berangkat_hijriah": "1444",
"perkiraan_tahun_berangkat_masehi": "2023"
}
朝觐号码检查器使用标准PHP库(SPL)中的DOMDocument和DOMXPath来解析从haji.kemenag.go.id网站获得的HTML页面。
演示可以在https://porsihaji.rioastamal.net找到。
安装
要安装朝觐号码检查器,可以使用Composer或从Github页面下载tarball。
Composer
请确保系统上已安装composer。然后运行以下命令进行安装。
$ composer create-project -vvv rioastamal/porsi-haji-checker porsi-haji-checker
$ cd porsi-haji-checker
如果想要使用生产版本,请添加选项--no-dev。
$ composer create-project -vvv --no-dev rioastamal/porsi-haji-checker porsi-haji-checker
手动
手动安装可以使用Git或从Github页面下载tarball。
$ git clone https://github.com/rioastamal/porsi-haji-checker.git
$ cd porsi-haji-checker
使用
朝觐号码检查器可以用作工具或库。
作为CLI工具
朝觐号码检查器的工具位于bin/目录中。此工具需要一个朝觐号码作为参数。以下是一个例子。
$ php bin/porsi-haji-checker.php 3000837XXX
{
"nomor_porsi": "3000837XXX",
"nama": "HAMBA ALLAH INDONESIA",
"kabupaten_kota": "KOTA SURABAYA",
"provinsi": "JAWA TIMUR",
"kuota": "12345",
"posisi_porsi_kuota": "12233",
"perkiraan_tahun_berangkat_hijriah": "1444",
"perkiraan_tahun_berangkat_masehi": "2023"
}
除了通过参数,您也可以通过STDIN流提供朝觐号码。以下是一个例子。
$ echo "3000837XXX" | php bin/porsi-haji-checker.php
{
"nomor_porsi": "3000837XXX",
"nama": "HAMBA ALLAH INDONESIA",
"kabupaten_kota": "KOTA SURABAYA",
"provinsi": "JAWA TIMUR",
"kuota": "12345",
"posisi_porsi_kuota": "12233",
"perkiraan_tahun_berangkat_hijriah": "1444",
"perkiraan_tahun_berangkat_masehi": "2023"
}
作为库
以下是一个在PHP脚本中使用朝觐号码检查器库的例子。假设您使用了Composer的Autoloader。
<?php require __DIR__ . '/../vendor/autoload.php'; // Jika tidak menggunakan autoload cukup require dua script berikut // require __DIR__ . '/src/NomorHajiScraper.php // require __DIR__ . '/src/NomorHajiParser.php use RioAstamal\Kemenag\NomorHajiScraper; use RioAstamal\Kemenag\NomorHajiParser; $nomorPorsi = '3000837XXX'; $scrapper = NomorHajiScraper::create($nomorPorsi); $parser = NomorHajiParser::create($scrapper); $jsonInfoPorsi = $parser->parse(); print_r( json_decode($jsonInfoPorsi), JSON_OBJECT_AS_ARRAY ); /* output Array ( [nomor_porsi] => 3000837XXX [nama] => HAMBA ALLAH INDONESIA [kabupaten_kota] => KOTA SURABAYA [provinsi] => JAWA TIMUR [kuota] => 12345 [posisi_porsi_kuota] => 12233 [perkiraan_tahun_berangkat_hijriah] => 1444 [perkiraan_tahun_berangkat_masehi] => 2023 ) */
运行单元测试
请确保通过以下composer命令安装了开发组件。
$ composer install -vvv
该命令将安装开发所需的组件。然后可以使用以下命令运行单元测试。
$ ./vendor/bin/phpunit --debug
PHPUnit 6.5.14 by Sebastian Bergmann and contributors.
Test 'RioAstamal\Kemenag\Test\NomorHajiParserTest::testReturnJsonSuccess' started
Test 'RioAstamal\Kemenag\Test\NomorHajiParserTest::testReturnJsonSuccess' ended
Test 'RioAstamal\Kemenag\Test\NomorHajiParserTest::testReturnJsonButEmpty' started
Test 'RioAstamal\Kemenag\Test\NomorHajiParserTest::testReturnJsonButEmpty' ended
Test 'RioAstamal\Kemenag\Test\NomorHajiParserTest::testScraperReturnError' started
Test 'RioAstamal\Kemenag\Test\NomorHajiParserTest::testScraperReturnError' ended
Time: 49 ms, Memory: 4.00MB
OK (3 tests, 15 assertions)
作者
朝觐号码检查器库由Rio Astamal编写 rio@rioastamal.net
许可证
本库使用MIT许可证 https://open-source.org.cn/licenses/MIT。