ivanwitzke / agendor-php
Agendor PHP 库
Requires
- php: >5.3
- ext-curl: *
- ext-json: *
- ext-mbstring: *
README
#agendor-php #
###关于###
这是一个用于与 Agendor API 一起使用的 php 库。要使用它,您首先需要一个 API Token,可以在 这里 找到
###安装### 使用 Composer 安装
composer require ivanwitzke/agendor-php
或者下载最新的 zip 文件 并将其解压到您的项目文件夹中,然后引入 agendor-php/Agendor.php
文件。
<?php
require("PATH_TO_PROJECT_FOLDER/agendor-php/Agendor.php");
然后在控制器(您将使用它的地方)中设置 API Key / Token
Ivanwitzke\Agendor\Agendor::setApiKey('YOURTOKEN');
###模型###
Agendor API 支持对 "People","Organization","Task" 和 "Deal" 的请求。这些中的一个都由这个库中同名类的类表示,并且具有与在 Api 文档 中定义的相同的属性。
###方法### 请求所有项目(分页)
$page
是要返回的页面;$limit
是每页的项目数量;
$peopleList = Ivanwitzke\Agendor\People::all($page, $limit);
$orgsList = Ivanwitzke\Agendor\Organization::all($page, $limit);
$dealsList = Ivanwitzke\Agendor\Deal::all($page, $limit);
$tasksList = Ivanwitzke\Agendor\Task::all($page, $limit);
请求一个项目
$person = Ivanwitzke\Agendor\People::findById($peopleId);
$org = Ivanwitzke\Agendor\Organization::findById($organizationId);
$deal = Ivanwitzke\Agendor\Deal::findById($dealId);
$task = Ivanwitzke\Agendor\Task::findById($taskId);
创建一个新的项目
通过传递一个包含所需所有信息的数组来创建一个新的对象实例,然后运行 $object->create();
示例
$personData = array(
"name" => "Person Name",
"role" => "Manager",
"emails" => array(
"mail1@mail.com",
"mail2@mail.com"
"mailN@mail.com"
),
"address" => array(
"postalCode" => 12345678, // numbers only
"streetName" => "Example Street",
"streetNumber" => 9999 // numbers only
);
);
$person = new Ivanwitzke\Agendor\People($personData);
try {
$person->create();
} catch (Exception $e) {
die($e->getMessage());
}
或者使用 "set" 方法:set + 属性名称驼峰式(例如:Ex: $object->setName("项目名称");
)
示例
$person = new Ivanwitzke\Agendor\People();
$person->setName("Person Name");
$person->setCategoryId(123);
$mobilePhone = new Ivanwitzke\Agendor\Object();
$mobilePhone->setType('mobile');
$mobilePhone->setNumber("1198765432");
$workPhone = new Ivanwitzke\Agendor\Object();
$workPhone->setType('work');
$workPhone->setNumber("1198765432");
$person->setPhones(array($mobilePhone, $workPhone));
$address = new Ivanwitzke\Agendor\Object();
$address->setStreetName("Street");
$address->setStreetNumber(999); // Must be number
$address->setCountry("Country");
$person->setAddress($address);
try {
$person->create();
} catch (Exception $e) {
die($e->getMessage());
}
如果一切顺利,响应将是对象实例,否则将抛出 API 发送的错误。
对于必须作为对象传递给 API 的属性(如 Ivanwitzke\Agendor\People->address
),有一个通用的 Ivanwitzke\Agendor\Object
类,您可以实例化并像使用任何主类一样设置其值。
注意:它们也可以设置为数组。
更新数据
首先找到要更新的内容
$organization = Ivanwitzke\Agendor\Organization::findById($id);
然后更新所需的内容并保存
if ($organization) { // We update only if the item was found
$organization->setNickname("New nickname");
$organization->setLegalName("New Legal Name");
$organization->setEmails(array($newEmail));
// Address property can be an Array or an Agendor\Object() instance;
$organization->setAddress(array(
'postalCode' => $newPostalCode, // numbers only;
'streetName' => $newStreetName,
'streetNumber' => $newStreetNumber // Also only numbers;
));
try {
$organization->save(); // Save the changes
} catch (Exception $e) {
return $response->withStatus($e->getCode())->write($e->getMessage());
}
}
与 create()
方法相同,save()
将在成功更新时返回对象,并抛出 API 发送的任何错误。
删除对象
调用 Ivanwitzke\Agendor\<Object>::delete($id)
方法。
示例
$response = Ivanwitzke\Agendor\Task::delete($taskId);
如果成功,则返回 true
并抛出 API 发送的错误。