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 以及它所使用的移动应用程序软件。所有商标均属于他们。