ondrejd / geis-point-service
PHP implementace klienta pro webovou službu GeisPoint.
Installs: 3 589
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 2
Forks: 2
Open Issues: 2
Requires
- php: >=5.3
- ext-soap: *
This package is not auto-updated.
Last update: 2025-02-01 21:03:33 UTC
README
PHP implementace klienta pro webovou službu GeisPoint.
For non-Czech visitors: Since GeisPoint web service is located in Czech Republic and serves mainly Czech users all documentation is written directly in Czech (but code self is commented in English and examples are self-explanatory).
Instalace
Buď můžete stáhnout zdrojové kódy přímo zde z repozitáře nebo použít Composer - stačí do vyjmenovaných závislostí v souboru composer.json
přidat tento záznam:
{ "require": { "ondrejd/geis-point-service": "dev-master" } }
Použití
Nejprve rychlý příklad. Následující skript:
<?php require 'vendor/autoload.php'; $gpsrv = new \GeisPointService\Service(); // Získáme všechny regiony $regions = $gpsrv->getRegions(); echo 'Počet regionů: '.count($regions).PHP_EOL; // Vybereme náhodný region $region = $regions[rand(0, count($regions) - 1)]; echo 'Města regionu '.$region->name.PHP_EOL; // Vybereme města zvoleného regionu $cities = $gpsrv->getCities(null, $region->id_region); echo 'Počet měst: '.count($cities).PHP_EOL; // Vybereme náhodné město $city = $cities[rand(0, count($cities) - 1)]; echo 'Výdejní místa pro město '.$city->city.PHP_EOL; // Najdeme výdejní místa v daném městě $points = $gpsrv->searchPoints(null, $city->city, null); echo 'Počet výdejních míst: '.count($points).PHP_EOL;
by měl vypsat následující výstup (konkrétní hodnoty se mohou lišit):
Počet regionů: 14
Města regionu Vysočina
Počet měst: 18
Výdejní místa pro město Havlíčkův Brod
Počet výdejních míst: 2
Konfigurace
Konstruktor třídy \GeisPointService\Service
přijíma jako jediný argument pole s nastavením klienta. Možnosti konfigurace jsou následující:
Přehled nastavení
Pole s nastavením může obsahovat následující hodnoty:
Nastavení pro \GeisPointService\Cache\FileCache
Tento typ cache je velmi jednoduchý - používá soubor, do kterého se ukládají data pomocí funkce serialize
a který se následně čte pomocí funkce unserialize
. Možnosti nastavení obsahují čistě jen cestu k souboru:
Nastavení pro \GeisPointService\Cache\DbCache
Tato třída využíva pro připojení PDO. Z toho vyplývá i nastavení:
Pozn.: Pokud je schema
rovno simple
, pak se data ukládají do jedné tabulky pojmenované {$prefix}_gpcache
. V případě použití typu extended
jsou data rozmístěna do tří tabulek, které odpovídají jednotlivým datovým typům (\GeisPointService\Region
, \GeisPointService\City
a \GeisPointService\Point
). Viz. následující diagram:
Pokud bude použité nastavení prázdné pole, defaultně se nastaví SQLite databáze (soubor cache.sqlite
a typ použitého schématu bude simple
).
Příklad nastavení
Níže je příklad nastavení s využitím souborové cache:
<?php require 'vendor/autoload.php'; $options = array( 'defaultCountry' => 'cz', 'defaultRegion' => 19, 'useCache' => true, 'usedCache' => '\GeisPointService\Cache\FileCache', 'cacheOptions' => array( 'path' => '/path/to/your/file' ) ); $gpsrv = new \GeisPointService\Service($options); // ...
Klient pro GeisPointService
Součástí implementace služby je i klient, který usnadňuje její použití. Umožňuje snadné vytvoření CRON skriptu pro pravidelné načítání potřebných dat (typicky každý den načteme všechny GP (a související data) pro Českou Republiku a tím šetříme čas potřebný k přímému dotazování) a skriptu, který vrací JSON pro použití v dynamických formulářích (typicky nákupní košík).
Použití klientské části
Nejprve jednoduchý skript, který je možno použít pro každodenní aktualizaci kompletních dat (přes CRON
). U tohoto použití musí služba využívat cache.
<?php require 'vendor/autoload.php'; $client = new GeisPointService\Client\Client(array( 'defaultCountry' => 'cz', 'defaultRegion' => 19, 'useCache' => true, 'usedCache' => '\GeisPointService\Cache\FileCache', 'cacheOptions' => array( 'path' => '/path/to/your/file' ) )); $client = $client->loadAll();
Nyní si ukážeme příklad skriptu, který lze použít pro dynamické formuláře (pomocí formátu JSON
):
<?php require `vendor/autoload.php`; // TBD...