ondrejd / geis-point-service
GeisPoint网络服务客户端的PHP实现。
Requires
- php: >=5.3
- ext-soap: *
This package is not auto-updated.
Last update: 2024-09-28 19:14:53 UTC
README
GeisPoint网络服务的PHP客户端实现。
非捷克语访问者:由于GeisPoint网络服务位于捷克共和国,主要服务于捷克用户,所有文档都是直接用捷克语编写的(但代码是用英文注释的,示例也是自解释的)。
安装
您可以直接从仓库下载源代码,或者使用Composer - 只需在composer.json
文件中指定的依赖项中添加此记录
{ "require": { "ondrejd/geis-point-service": "dev-master" } }
使用
以下是一个快速示例。以下脚本
<?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;
应该输出以下内容(具体值可能有所不同)
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
配置
\GeisPointService\Service
类的构造函数接受一个包含客户端设置的数组作为唯一参数。配置选项如下
配置概述
设置数组可以包含以下值
\GeisPointService\Cache\FileCache
的设置
这种类型的缓存非常简单 - 使用文件,通过serialize
函数将数据写入文件,然后通过unserialize
函数读取数据。设置选项仅包含文件路径
\GeisPointService\Cache\DbCache
的设置
这个类使用PDO进行连接。因此,设置如下
注意:如果schema
等于simple
,则数据将存储在一个名为{$prefix}_gpcache
的表中。如果使用extended
类型,则数据将分布在三个表中,分别对应于不同的数据类型(\GeisPointService\Region
、\GeisPointService\City
和\GeisPointService\Point
)。请参阅以下图例
如果设置是空数组,则默认使用SQLite数据库(文件为cache.sqlite
,使用的模式为simple
)。
设置示例
以下是一个使用文件缓存的设置示例
<?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); // ...
GeisPointService
客户端
服务实现的一部分是客户端,它简化了其使用。它允许轻松创建CRON脚本以定期加载数据(通常每天读取所有GP(和相关数据)以供捷克共和国使用,从而节省了直接查询所需的时间)以及用于动态表单的JSON脚本来使用
客户端部分的用法
首先是一个简单的脚本,可用于每日更新完整数据(通过CRON
)。在此使用中,**必须**使用缓存。
<?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();
现在我们将展示一个可用于动态表单的脚本的示例(使用JSON
格式)
<?php require `vendor/autoload.php`; // TBD...