cognetif/poka-api

此包已被废弃,不再维护。未建议替代包。

Poka Api - 用于与Poka API交互

v1.4.2 2022-02-18 18:50 UTC

README

此库允许您与Poka API交互。

注意

此库未经Poka批准、许可、委托或认可。它是由第三方:Cognetif.com创建和维护的。

安装

使用composer安装

$ compose require cognetif/poka-api

使用方法

服务将扩展CollectionService,表示对象数组,或ObjectService,表示单个对象。

ObjectModel

在CollectionService项目或由ObjectService返回的所有对象都是ObjectModel类型,字段可以通过它们的魔术属性动态访问。

$myObject = new ObjectModel();
$myObject->populateFromArray([
    'prop1' => 'hello', 
    'prop2' => 'world'
]);

echo $myObject->prop1 . ' ' . $myObject->prop2;
//Output: hello world

您可以使用loaded()函数确定对象模型数据是否已由其服务加载。

$myService = new SomeCollectionService();

/** @var ObjectModel $item */
foreach ($myService->getAll() as $item) {
   if ($item->loaded()) {
       //Item has been loaded with data.
       echo $item->property1;    
   }   
}

ObjectServices

CollectionService是PokaApi服务,可以执行以下API相关方法

  • ObjectService::getById($id, $data = []):ObjectModel - 将对特定API项ID发起请求。可以通过$data数组传递可选参数。

CollectionServices

CollectionServices还可以执行以下集合相关方法

  • CollectionService::add(ObjectModel $anObject); 将ObjectModel追加到数据集
  • CollectionService::merge(ObjectModel[] $arrayOfObjects); 将ObjectModel数组合并到当前数据集
  • CollectionService::count(): int; 返回集合中的项目数量
  • CollectionService::getById((int) $id, $idProperty = 'id'): ObjectModel 通过给定的$idProperty属性搜索获取1个ObjectModel
  • CollectionService::clear(); 清除数据集
  • CollectionService::items(): array; 返回集合的完整数据集

CollectionService也是PokaApi服务,可以执行以下API相关方法

  • CollectionService::getAll($data = []) 获取整个数据集。会进行多个分页API调用。查询参数可以通过$data数组传递
  • CollectionService::getPage($data = [], $refresh = true) 获取1页数据。使用分页函数移动页面。查询参数可以通过$data数组传递

CollectionService也是分页服务,可以执行以下API相关方法

  • CollectionService::incrementPage(); 增加下一次请求的页码
  • CollectionService::offset(): int 返回当前分页偏移量
  • CollectionService::nextPage(): int 返回下一页的页码
  • CollectionService::lastPage(): int 返回最后一页的页码或0(如果没有)
  • CollectionService::page(): int 返回当前页码
  • CollectionService::limit(): int 返回页面大小限制
  • CollectionService::setLimit(int $limit) 设置页面大小限制

许可证

此库受MIT许可证保护。请阅读许可证条款

问题/贡献

欢迎并鼓励贡献。此库是开源的,但由Cognetif.com维护。请随时在https://gitlab.com/cognetif-os/poka-api-client上打开问题。