pendonl/laravel-exact-online

此包已被弃用且不再维护。未建议替代包。

Laravel Facade 封装 Exact Online PHP API

dev-master 2020-05-22 14:48 UTC

This package is auto-updated.

Last update: 2020-05-22 14:54:36 UTC


README

2020年5月22日:由于此包最初旨在在项目中使用并解决我们的问题,我们已经将其存档。自那时起,我们没有对其进行过更新。已存档以供使用过它的人使用。如果您想积极开发和支持此包,请随意分叉并重新发布。

Laravel Exact Online

此包是围绕 Picqer 的 Exact Online PHP API 的 Laravel 封装。它提供开箱即用的路由和控制器,以连接您的 Laravel 应用程序与 Exact Online 应用程序。它还提供了一个可链的 Facade,便于向 API 发送请求。授权和刷新令牌会自动保存。

注意:令牌将保存在一个 JSON 文件中,适用于整个应用程序。因此,此代码不适用于需要访问 Exact Online 的单用户平台!此代码组可以用于与单个 Exact Online 用户的管理进行通信。

初稿 - 请勿使用!

到目前为止,此包只是一个草案。所以请自行承担风险。我们目前正在开发一个项目,看看它是否提供了我们需要的所有功能。如果您打算使用此包,请参阅下面的说明和您可能使用的功能。

安装

首先将此包的 dev-master 版本添加到您的 composer.json 中

"pendonl/laravel-exact-online": "dev-master"

然后运行 composer update 并将服务提供者添加到 config/app.php 中(对于 L5.5 及以上版本,自动发现已启用)

...
PendoNL\LaravelExactOnline\Providers\LaravelExactOnlineServiceProvider::class,
...

在同一文件中,添加 Facade

...
'ExactOnline' => PendoNL\LaravelExactOnline\LaravelExactOnlineFacade::class,
...

随后发布资源(视图、配置等)

php artisan vendor:publish --provider="PendoNL\LaravelExactOnline\Providers\LaravelExactOnlineServiceProvider"

在开发此包时,您可能需要使用 --force 标志在此命令中覆盖先前文件。

最后但同样重要的是,您可以通过编辑 config/laravel-exact-online 来匹配您的 Exact Online 应用程序设置,或者将这些密钥添加到 .env 中

EXACT_CLIENT_ID=
EXACT_CLIENT_SECRET=

以下密钥是可选的

EXACT_COUNTRY_CODE=
EXACT_DIVISION=

多用户支持

默认情况下,此插件将精确密钥存储在一个 JSON 文件中。这意味着每个用户都使用相同的凭据。如果您想给您的用户提供建立个人连接的机会,您可以在 .env 文件中设置以下参数

EXACT_MULTI_USER=true

注意:尚无为此功能编写的迁移。请随意这样做。在此期间,您应将这些更改添加到您的用户迁移中

$table->text('exact_accessToken')->nullable();
$table->text('exact_refreshToken')->nullable();
$table->text('exact_tokenExpires')->nullable();
$table->text('exact_authorisationCode')->nullable();

并为您的用户对象添加以下填充项

protected $fillable = [
    'name', 'email', 'password', 'exact_accessToken', 'exact_refreshToken', 'exact_tokenExpires', 'exact_authorisationCode'
];

如何使用连接 Laravel & Exact Online

如前所述,此软件包提供了路由和控制器,以便轻松地将您的Exact App连接到您的Laravel项目。您可以在您的routes/web.php文件中覆盖路由,我甚至强烈建议这样做,因为路由默认情况下是未受保护的!

您还可以根据喜好编辑视图,发布后它们可以在您的资源路径下的/views/vendor/laravel-exact-online/找到。

步骤 1:连接和授权

访问http://your-project.dev/exact/connect,您将看到一个提交按钮,用于转到Exact Online。登录并批准应用程序后,您将被返回到http://your-project.dev/exact/oauth,该路由负责保存未来请求所需的令牌。

步骤 2:使用Facade

这就完成了,您现在可以使用此软件包了。

如何使用API

由Picqer提供的软件包要求您为即将使用的每个资源提供一个有效的连接参数。这是通过添加令牌的一块大代码完成的。在此软件包的ServiceProvider中,我们创建了一个单例,为您完成所有这些操作。

$connection = app()->make('Exact\Connection');

然后,当使用Picqer的类请求资源时,使用此连接。

use \Picqer\Financials\Exact\Account;

// List all accounts
$account = new Account($connection);
dd($account->get());

通过使用Facade,我们试图使事情变得简单,例如获取账户列表

ExactOnline::Account()->get();

或查找特定账户

ExactOnline::Account()->find('account_ID');

所有更改连接的方法都是驼峰命名并以前缀connection开头,例如,如果您想更改API的基本URL,您将调用

ExactOnline::connectionSetBaseUrl('http://start.exactonline.de');

当然,为了可读性,一切都是可链式的

ExactOnline::connectionSetBaseUrl('http://start.exactonline.de')
    ->Account()
    ->find('account_ID');

致谢

安全

如果您发现任何安全相关的问题,请通过电子邮件joshua@pendo.nl联系,而不是使用问题跟踪器。

关于Pendo

Pendo是一家位于荷兰马斯特里赫特的网络开发公司。如果您愿意,您可以访问我们的网站

许可

MIT许可证(MIT)。有关更多信息,请参阅许可证文件