Directus SDK for PHP

1.1.1 2018-04-24 03:19 UTC

This package is not auto-updated.

Last update: 2020-11-13 22:25:23 UTC


README

Directus Logo

Directus 6 PHP SDK (Legacy)

网站文档API 参考用户指南演示贡献

 

此代码库仍在开发中。仓库在这里作为任何人有兴趣为软件开发套件做出贡献的占位符。欢迎提出拉取请求和贡献!

 

Build Status Scrutinizer Scrutinizer Coverage

对于由PHP驱动的应用程序,使用此SDK可以更容易地与您的Directus管理的数据库进行通信。

要求

  • PHP版本5.5或更高。

安装

通过 Composer

您可以通过将 directus/sdk 添加到 composer.jsonrequire 列表中,使用 Composer 安装SDK。

{
  "require": {
    "directus/sdk": "^1.1.1"
  },
  "minimum-stability": "dev",
  "repositories": [{
    "type": "git",
    "url": "https://github.com/wellingguzman/zend-db"
  }]
}

确保 devminimum-stability。我们使用的是 Zend-DB 的分叉版本,因为它没有以任何新名称或版本发布,因此我们必须将 minimum-stability 设置为 dev 以便 composer 在 GitHub 中找到存储库并安装 Zend-DB。

然后运行 composer install

Composer 将下载所有依赖项并将它们复制到名为 vendor 的目录中。

要使用SDK,您必须包含 composer 自动加载。composer 自动加载是一个位于 vendor 目录中的文件,名称为 autoload.php

require_once 'vendor/autoload.php';

使用

数据库连接

require 'vendor/autoload.php';

$config = [
    'database' => [
        'hostname' => 'localhost',
        'username' => 'root',
        'password' => '123',
        'database' => 'directus_db',
        // Optional
        // 'port' => 3306,
        // 'charset' => 'utf8'
    ],
    'filesystem' => [
        'root' => '/path/to/directus/storage/uploads'
    ]
];

$client = \Directus\SDK\ClientFactory::create($config);
$articles = $client->getItems('articles');

foreach ($articles as $article) {
    echo $article->title . '<br>';
}

Directus 主办

您可以在 https://directus.io 注册 Directus 主办账户。

require 'vendor/autoload.php';

$client = \Directus\SDK\ClientFactory::create('user-token', [
    // the sub-domain in your instance url
    'instance_key' => 'user--instance',
    'version' => '1' // Optional - default 1.1
]);

$articles = $client->getItems('articles');
foreach ($articles as $article) {
    echo $article->title . '<br>';
}

您的服务器

require 'vendor/autoload.php';

$client = \Directus\SDK\ClientFactory::create('user-token', [
    // Directus API Path without its version
    'base_url' => 'http://directus.local',
    'version' => '1' // Optional - default 1.1
]);

$articles = $client->getItems('articles');
foreach ($articles as $article) {
    echo $article->title . '<br>';
}

获取完整的响应

完整的响应要么是 EntryEntryCollection 对象,具体取决于结果是一个单独的项目还是一个项目集合。

虽然可以像数组一样访问和设置属性,但它实际上不是数组。

$articles = $client->getItems('articles');
// OK
$title = $articles['title'];

$articles = $client->getItems('articles');
// Error
$data = array_merge(['title' => 'Default'], $articles);

将整个响应作为数组获取

$articles = $client->getItems('articles');
$articlesArray = $articles->toArray();
// Works
$data = array_merge(['title' => 'Default'], $articlesArray);

获取数据响应

响应包含数据和元数据,默认情况下,与EntryCollectionEntry交互时,您正在与“数据”对象交互。

将数据作为数组获取

$articles = $client->getItems('articles');
$articlesArray = $articles->getData();

元数据

元数据是另一个包装元数据信息的Entry对象,它也可以像数组一样访问和设置数据,但它不是一个数组。

获取元数据

$articles = $client->getItems('articles');
$metadata = $articles->getMetaData();
$articles = $client->getItems('articles');
$metadataArray = $articles->getMetaData()->getData();

 

Directus采用GPLv3许可证发布。《RANGER Studio LLC》(http://rangerstudio.com)代表我们的项目社区拥有Directus的所有商标和标志。版权所有 © 2006-2018,《RANGER Studio LLC》(http://rangerstudio.com)。