kbsali/gsm-api

GlobalSportsMedia (GSM) API 客户端

1.0.3 2014-02-17 10:31 UTC

This package is auto-updated.

Last update: 2024-09-04 19:45:32 UTC


README

A simple PHP5 Object Oriented wrapper for GlobalSportsMedia (GSM) XML API.

请参阅http://client.globalsportsmedia.com/documentation

特性

  • 遵循PSR-0约定和编码标准:易于自动加载
  • API入口点实现状态
  • OK 足球
  • OK 澳大利亚足球
  • OK 澳大利亚足球
  • OK 棒球
  • OK 篮球
  • OK 板球
  • OK 高尔夫
  • OK 手球
  • OK 曲棍球
  • OK 汽车运动
  • OK 橄榄球
  • OK 网球
  • OK 排球

需求

  • PHP >= 5.4,需要cURL 扩展

安装

通过composer,只需运行

$ php composer.phar require kbsali/gsm-api:1.*

php-gsm-api 客户端的基本用法

所有方法都返回一个SimpleXmlElement对象,或者在出现错误时抛出异常。根据globalsportsmedia.com中记录的基本工作流程操作足球数据

<?php

// This file is generated by Composer
require_once 'vendor/autoload.php';

$client = new GlobalSportsMedia\Client('http://webpull.globalsportsmedia.com', 'USERNAME', 'PASSWORD');
$client
    ->cacheOn() // for live method (like get_matches_live_updates) you might want to disable caching
    ->setCacheDir(__DIR__.'/cache') // path where xml responess will be cached
;

try {
    $seasons = $client->api('soccer')->get_seasons(['authorized' => 'yes']);
    foreach ($seasons->competition as $competition) {
        foreach ($competition->season as $season) {
            $matches = $client->api('soccer')
                ->cacheOncePerDay() // cache, but only once a day!
                ->get_matches(
                    (int) $season['season_id'],
                    'season',
                    ['detailed' => 'yes', 'start_date' => date('Y-m-d H:00:00')]
                )
            ;
            // process matches...
        }
    }
} catch(\Exception $e) {
    die($e->getMessage());
}

您可以控制是否要缓存对API的请求(get_seasons()不太可能每天都会变化)

  • 使用cacheOff()永远不缓存请求
  • 使用cacheOn()无限期地缓存请求(即,直到清理缓存为止)
  • 使用cacheOncePerDay()缓存当天的请求

如果您想缓存请求,您必须通过setCacheDir()指定缓存目录