alantiller / directus-php-sdk
Directus 9 的非官方 PHP SDK
Requires
- php: ^7.0 || ^8.0
- ext-curl: *
This package is auto-updated.
Last update: 2024-09-08 22:00:22 UTC
README
Directus 9 的 PHP SDK (@directus/directus)
文档
安装(Composer)
现在我们在 Packagist 上!这使得安装更加简单,你只需要在你的 composer.json
文件中包含我们的包 alantiller/directus-php-sdk
,版本为 ^1.0
,然后运行 composer update。
或者你可以运行 composer require alantiller/directus-php-sdk
,这将为你完成上述所有操作 :)
安装(手动)
安装 Directus PHP SDK 非常简单和容易。你只需要从发布页面下载最新版本,并将 PHP 文件放置在你的
用法
我们已经简化了创建 SDK 新实例的方式,现在你在构造函数中设置配置设置,而不是另一个函数。你仍然可以在构造函数中像以前一样定义其他变量,如下所示。
<?php
include 'Directus.php'; // Include the SDK Class - MANUAL
include 'vendor/autoload.php'; // Include the composer autoload - COMPOSER
$directus = new Slations\DirectusSdk\Directus("https://url.to.your.directus.install.io/");
我个人更喜欢在创建新实例时设置命名空间,因为我认为它更简洁,但这取决于个人喜好。
配置选项
设置选项
目前有四个用户可以设置的配置选项,这些选项需要按照以下顺序设置。以标题开头的选项是必需的,其余的是可选的。
$directus = new Slations\DirectusSdk\Directus(option1*, option2*, option3, option4, option5);
选项 1* | 设置 API URL
你设置 directus 安装的基本 URL,此字段对于 SDK 的工作是必需的。
选项 2* | 设置 Auth Prefix
你设置 directus 实例的 auth 前缀,这样 SDK 就可以区分并行运行的两个实例。
选项 3 | 设置 Auth Storage
默认情况下是 _SESSION
,但可以根据最终用户的需求更改以下选项。
_SESSION
- 这在服务器端将三个 Auth 变量存储在 PHP Session 中,这是最安全的方法,但需要你定义一个 session session_start();
_COOKIE
- 这在客户端将三个 Auth 变量存储在 Cookies 中,但仍然会在服务器端使用 PHP Session 存储和使用,因为 PHP Cookie 支持的限制。如果你需要使用 Cookies 从 JS 中检索访问令牌,这可能很有用。
选项 4 | 设置 Auth Domain
这个选项仅在选项 2 设置为 _COOKIE
时使用。这设置了 cookie 的根认证域。默认情况下是 /
,因此它适用于整个网站,但可以设置为文件夹,如果你只想让用户在子目录中进行认证。
选项 5 | 设置 Strip Headers
此选项主要用于开发,因此它被放在最后,但返回给用户的请求可以包含数组中的标题以及内容。默认值是 true
,但可以设置为 false
,如果你需要访问请求的标题。
全局
获取 API URL
$directus->base_url;
项
创建单个项
$directus->create_items('articles', array(
"status" => "draft",
"title" => "example",
"slug" => "example"
));
读取所有项
$directus->get_items('articles');
通过查询读取
$directus->get_items('articles', array(
search => "",
filter => array(
"date_published" => array(
"_gte" => "\$NOW" // If you use Directus provided dynamic options like $NOW make sure you ascape the item \$NOW so PHP knows it's not a PHP variable
)
)
));
通过主键读取
$directus->get_items('articles', 15);
更新单个项
$directus->update_items('articles', array("title" => "example_new"), 15);
删除项
// One
$directus->delete_items('articles', 15);
// Multiple
$directus->delete_items('articles', array(15, 42));
认证
获取/设置令牌
设置静态认证令牌,如果有人验证了他们的认证,则会覆盖此认证令牌!
$directus->auth_token('abc.def.ghi');
$directus->auth_token;
登录
当您提交登录请求时,它将返回一个错误信息 "errors",或者直接返回 true。如果它返回了 try,则表示登录成功,并且认证已使用配置中定义的方法(默认为 _SESSION)存储。带有自动刷新的登录,所以您无需担心令牌过期。
$directus->auth_user('demo@slations.co.uk', 'Pa33w0rd');
刷新
默认情况下,SDK 将每十五分钟自动刷新一次,以确保令牌永不过期。我们将在未来添加关闭自动刷新的功能。
登出
$directus->auth_logout();
请求密码重置
第二个值是可选的,如果您想为重置邮件发送自定义的返回 URL。
$directus->auth_password_request('demo@slations.co.uk', 'https://example.com/comfirm');
重置密码
注意:当使用 auth_password_request
时,第一个参数中传递的令牌将发送到用户邮箱。
$directus->auth_password_reset('abc.def.ghi', 'N3wPa33W0rd');