slations / directus-php-sdk

此包已被废弃且不再维护。作者建议使用 alantiller/directus-php-sdk 包。

Directus 9 的非官方 PHP SDK

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

This package is auto-updated.

Last update: 2023-04-08 19:05:24 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

你设置直接us 安装的基本 URL,此字段对于 SDK 的工作是必需的。

选项 2* | 设置认证前缀

你设置 directus 实例的认证前缀,这样 SDK 可以区分并行运行的两个实例。

选项 3 | 设置认证存储

默认情况下是 _SESSION,但可以更改为以下选项以满足最终用户的需求。

_SESSION - 这在服务器端将三个认证变量存储在 PHP 会话中,这是最安全的方法,但需要你定义会话 session_start();

_COOKIE - 这在客户端将三个认证变量存储在 Cookie 中,但仍然会在服务器端存储和使用 PHP 会话,因为 PHP Cookie 支持的限制。如果你需要从 JS 使用 Cookie 获取访问令牌,这可能很有用。

选项 4 | 设置认证域

当选项2设置为_COOKIE时,此选项才会使用。这设置了cookie的根认证域。默认情况下为/,因此适用于整个站点,但也可以设置为文件夹,如果您只想让用户在子目录中进行认证。

选项5 | 设置剥离头信息

此选项主要用于开发,因此它被放在最后,但返回给用户的请求可以包含数组中的头信息以及内容。默认值为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');