开源项目 exact-php-client
使用教程
1. 项目的目录结构及介绍
exact-php-client
是一个用于访问 Exact Online REST API 的 PHP 客户端库。项目的目录结构如下:
exact-php-client/
├── src/
│ ├── Connection.php
│ ├── ExactApi.php
│ ├── Persistence/
│ │ ├── ConnectionConfig.php
│ │ ├── PersistentConnection.php
│ │ └── Repository.php
│ ├── Query/
│ │ ├── Condition.php
│ │ ├── Filter.php
│ │ ├── Join.php
│ │ ├── Query.php
│ │ └── Select.php
│ └── Entities/
│ ├── Account.php
│ ├── Address.php
│ ├── Contact.php
│ └── ...
├── examples/
│ ├── example.php
│ └── ...
├── tests/
│ ├── ConnectionTest.php
│ ├── ExactApiTest.php
│ └── ...
├── composer.json
├── README.md
└── ...
目录结构介绍
src/
:包含库的核心代码,包括连接管理、API 调用、持久化处理和实体类。Connection.php
:负责与 Exact Online API 的连接管理。ExactApi.php
:封装了对 Exact Online API 的调用。Persistence/
:包含持久化相关的类。Query/
:包含查询构建相关的类。Entities/
:包含各种实体类,如账户、地址、联系人等。
examples/
:包含使用该库的示例代码。tests/
:包含单元测试代码。composer.json
:Composer 配置文件,用于依赖管理。README.md
:项目说明文档。
2. 项目的启动文件介绍
项目的启动文件通常是 examples/example.php
,这是一个示例文件,展示了如何使用 exact-php-client
库来连接和调用 Exact Online API。
启动文件内容
require 'vendor/autoload.php';
use Picqer\Financials\Exact\Connection;
$connection = new Connection();
$connection->setRedirectUrl('YOUR_REDIRECT_URL');
$connection->setExactClientId('YOUR_CLIENT_ID');
$connection->setExactClientSecret('YOUR_CLIENT_SECRET');
if (isset($_GET['code'])) {
$connection->setAuthorizationCode($_GET['code']);
try {
$connection->connect();
} catch (\Exception $e) {
echo 'Could not connect to Exact: ', $e->getMessage();
}
}
// 示例:获取账户列表
$account = new \Picqer\Financials\Exact\Account($connection);
$accounts = $account->get();
print_r($accounts);
启动文件介绍
- 首先,通过
require 'vendor/autoload.php'
引入 Composer 自动加载文件。 - 使用
Picqer\Financials\Exact\Connection
类创建一个连接实例。 - 设置
RedirectUrl
、ExactClientId
和ExactClientSecret
。 - 如果收到授权码,则使用该授权码连接到 Exact Online API。
- 示例代码展示了如何获取账户列表。
3. 项目的配置文件介绍
项目的配置文件主要是 composer.json
,它定义了项目的依赖和其他配置信息。
composer.json
内容
{
"name": "picqer/exact-php-client",
"description": "PHP Client for Exact Online API",
"type": "library",
"require": {
"php": ">=5.6",
"guzzlehttp/guzzle": "^6.0 || ^7.0"
},
"require-dev": {
"phpunit/phpunit": "^5.7 || ^6.0 || ^7.0"
},
"autoload": {
"psr-4": {
"Picqer\\Financials\\Exact\\": "src/"
}
},
"license": "MIT",
"authors": [
{
"
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考