eher / chegamos-lib
Chegamos (https://github.com/EHER/chegamos) 的核心库,用于其他项目 :D
2.0.1
2014-12-25 21:24 UTC
Requires
- php: ~5.3
- guzzlehttp/guzzle: ~5.0
Requires (Dev)
- hamcrest/hamcrest-php: ~1.2
- mockery/mockery: ~0.9
- phpunit/phpunit: ~4.3
README
使用 make 与项目交互。
示例
示例假设您已配置 Autoloader 并拥有 API 访问密钥。
所有示例都必须从以下内容开始
<?php
use chegamos\rest\client\Curl as RestClient;
use chegamos\rest\auth\BasicAuth;
use chegamos\entity\Config;
use chegamos\entity\repository\UserRepository;
use chegamos\entity\repository\PlaceRepository;
use chegamos\entity\City;
use chegamos\entity\Address;
use chegamos\entity\Point;
$key = "ConsumerKey";
$secret = "ConsumerSecret";
$config = new Config();
$config->setBaseUrl("http://api.apontador.com.br/v1/");
$config->setBasicAuth(
new BasicAuth($key, $secret)
);
$config->setRestClient(
new RestClient()
);
本地库
$placeRepository = new PlaceRepository($config);
获取本地数据
$place = $placeRepository->get("UCV34B2P");
var_dump($place);
获取带评价的本地数据
$place = $placeRepository->byId("UCV34B2P")
->withReviews()
->get();
var_dump($place);
获取带图片的本地数据
$place = $placeRepository->byId("UCV34B2P")
->withPhotos()
->get();
var_dump($place);
根据地址(CEP)列出附近地点
$places = $placeRepository->byZipcode("18040690")
->getAll();
var_dump($places);
根据类别过滤地址(CEP)附近的地点
$places = $placeRepository->byZipcode("18040690")
->withCategoryId("043") // Associacoes E Sindicatos
->getAll();
var_dump($places);
根据子类别过滤地址(CEP)附近的地点
$places = $placeRepository->byZipcode("18040690")
->withSubcategoryId("6661") // Associacoes Beneficentes
->getAll();
var_dump($places);
根据名称过滤地址(CEP)附近的地点
$places = $placeRepository->byZipcode("18040690")
->withName("Cafe")
->getAll();
var_dump($places);
列出城市(城市,UF)的地点
$city = new City();
$city->setName("São Paulo");
$city->setState("SP");
$address = new Address();
$address->setCity($city);
$places = $placeRepository->byAddress($address)
->getAll();
var_dump($places);
通过地理坐标列出地点
$point = new Point();
$point->setLat("-23.51241");
$point->setLng("-47.46828");
$places = $placeRepository->byPoint($point)
->withName("Cafe")
->getAll();
var_dump($places);
用户库
$userRepository = new UserRepository($config);
获取用户数据
$user = $userRepository->get("8972911185");
var_dump($user);
获取带评价的用户数据
$user = $userRepository->byId("8972911185")
->withReviews()
->get();
var_dump($user);
获取带第二页评价的用户数据
$user = $userRepository->byId("8972911185")
->withReviews()
->page(2)
->get();
var_dump($user);
按名称搜索用户
$userList = $userRepository->byName("Eher")
->getAll();
var_dump($userList);
按邮箱搜索用户
$userList = $userRepository->byEmail("alexandre@eher.com.br")
->getAll();
var_dump($userList);
Curl 或 Guzzle
Guzzle 是一种非常友好的方式,用于处理 REST 而无需直接处理 Curl。在上面的示例中,我们使用 Curl,因为它不依赖于其他项目,但推荐使用 Guzzle。
要将 Curl 更改为 Guzzle,只需更改以下行
use chegamos\rest\client\Curl as RestClient;
到
use chegamos\rest\client\Guzzle as RestClient;