ontariotechu/xmodule

为 Modo Labs XModule 提供轻松且一致地构建 API 端点的实用类

v1.2.6 2019-06-24 16:34 UTC

README

Latest Stable Version Total Downloads Latest Unstable Version License

PHP 库,用于轻松且一致地构建 Modo LabsXModule 功能的 REST API 端点。

此库提供了一组 PHP 类,这些类直接映射到 Modo 的 XModule 元素集合。它通过去除样板 JSON 的需求,并确保所有 XModule 组件通过面向对象的工作流程和强类型参数无缝结合,从而有助于创建复杂的 XModule 布局。

构建和搭建的 XModule 内容可以通过仅调用 $xmodule->render()json_encode 结果输出为完全符合规范的 JSON。

需求

  • PHP >= 7.0.0

安装

$ composer require ontariotechu/xmodule:dev-master

别忘了在应用程序开始时包含一次 Composer 的自动加载器

require __DIR__ . '/vendor/autoload.php';

用法

将所需组件导入您的服务器应用程序

use \XModule\Base\XModule;
use \XModule\Shared\Link;
use \XModule\Constants\LinkType;
use \XModule\ButtonContainer;
use \XModule\LinkButton;

使用组件构建 XModule 结构

/**
 * Create a new XModule
 */
$xmodule = new XModule();

/**
 * Create XModule elements
 */
$buttonContainer = new ButtonContainer(['id' => 'link_buttons']);
$link = new Link('./', LinkType::RELATIVE_PATH);
$button = new LinkButton('Click here', ['link' => $link]);

/**
 * Attach your elements to each other and the XModule
 */
$buttonContainer->addButton($button)
$xmodule->addContent($buttonContainer);

/**
 * Render the output
 */
echo json_encode($xmodule->render());

结果

{
  "metadata": {
    "version": "1"
  },
  "content": [
    {
      "elementType": "buttonContainer",
      "id": "link_buttons",
      "buttons": [
        {
          "elementType": "linkButton",
          "title": "Click here",
          "link": {
            "relativePath": "./"
          }
        }
      ]
    }
  ]
}

文档

有关一般用法的信息,请参阅此存储库的 wiki。wiki 的页面也位于 usage.md 单个文档中,以便快速访问。

完整的类文档仍在等待中,但在此期间,可以在此存储库的 /docs 文件夹中找到一些非常基本的自动生成文档。可以使用包含的 Composer 脚本重新生成或查看文档

# regenerate
$ composer run-script build-docs

# view docs (http://0.0.0.0:8080)
$ composer run-script docs

致谢

  • Modo Labs 创建了 XModule 以及它所使用的移动应用程序软件。所有商标均属于他们。