alantiller/directus-php-sdk

Directus 9 的非官方 PHP SDK

v1.0.3 2022-05-08 19:21 UTC

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');