ondrejd/geis-point-service

GeisPoint网络服务客户端的PHP实现。

dev-master 2015-10-05 23:14 UTC

This package is not auto-updated.

Last update: 2024-09-28 19:14:53 UTC


README

Build Status

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)。请参阅以下图例

Schéma pro databázovou cache

如果设置是空数组,则默认使用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...