ontariotechu / xmodule
为 Modo Labs XModule 提供轻松且一致地构建 API 端点的实用类
v1.2.6
2019-06-24 16:34 UTC
Requires
- php: >=7.0.0
This package is auto-updated.
Last update: 2024-09-06 20:32:07 UTC
README
PHP 库,用于轻松且一致地构建 Modo Labs 的 XModule 功能的 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 以及它所使用的移动应用程序软件。所有商标均属于他们。