rioastamal/porsi-haji-checker

一个基于号码的朝觐出发信息库

v1.1 2019-05-06 00:04 UTC

This package is auto-updated.

Last update: 2024-09-06 12:14:42 UTC


README

Build Status Latest Stable Version License codecov

关于

朝觐号码检查器是一个简单的库,同时也是基于命令行界面(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