porsi haji checker是一個簡單的函式庫以及基於命令列介面 (CLI) 的實用程序,用於檢查 Hajj 部分編號。結果輸出是 JSON 資料。該實用程式可被視為網站頁面 https://haji.kemenag.go.id/v3/node/955358 的 CLI 版本。
以下是如何將porsi haji checker用作 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 "
}
porsi haji checker使用標準 PHP 函式庫 (SPL),即 DOMDocument 和 DOMXPath 來解析從 haji.kemenag.go.id 網站取得的 HTML 頁面。
演示可在 https://porsihaji.rioastamal.net 上取得。
要安裝porsi haji checker ,您可以使用 Composer 或在 Github 頁面上下載 tarball。
確保您的系統上安裝了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
porsi haji checker可以用作實用程式或庫。
porsi haji checker實用程式的位置位於 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 腳本中使用porsi haji checker函式庫的範例。假設您正在使用 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 'RioAstamalKemenagTestNomorHajiParserTest::testReturnJsonSuccess' started
Test 'RioAstamalKemenagTestNomorHajiParserTest::testReturnJsonSuccess' ended
Test 'RioAstamalKemenagTestNomorHajiParserTest::testReturnJsonButEmpty' started
Test 'RioAstamalKemenagTestNomorHajiParserTest::testReturnJsonButEmpty' ended
Test 'RioAstamalKemenagTestNomorHajiParserTest::testScraperReturnError' started
Test 'RioAstamalKemenagTestNomorHajiParserTest::testScraperReturnError' ended
Time: 49 ms, Memory: 4.00MB
OK (3 tests, 15 assertions)
porsi haji checker庫由 Rio Astamal 編寫 [email protected]
該庫使用 MIT 授權 http://opensource.org/licenses/MIT。