boyhagemann / hydra
简单的 PHP Hydra 封装类
dev-master
2014-05-01 14:23 UTC
Requires
- ml/json-ld: 1.*
This package is not auto-updated.
Last update: 2024-09-14 16:13:32 UTC
README
Hydra 是一个简化互操作、超媒体驱动的 Web API 开发的项目。Hydra 的两个基本构建块是 JSON-LD 和 Hydra 核心词汇表。
JSON-LD 是服务器与其客户端之间通信中使用的序列化格式。Hydra 核心词汇表代表它们之间的共享词汇。通过指定在 Web API 中常用的多个概念,它可以作为构建 Web 服务的基石,这些 Web 服务在松散耦合、可维护性、可扩展性和可伸缩性方面具有 REST 的优势。此外,它还允许创建通用的 API 客户端,而不是为每个 API 需要专门的客户端。
此包提供了简单的封装类来读取 JSON-LD 配置,并将它们作为 Hydra 对象展示。然后您可以使用表单实用类根据 Hydra 属性渲染 HTML 表单。
读取 JSON-LD 文件
配置文件可以返回一个表示 json 结构的对象。目前,只能读取 Hydra 类及其支持的属性。
$hydra = HydraClassFactory::fromPath('path/to/your/config.jsonld'); // Get all supported properties $hydra->getProperties(); // returns an array of HydraProperty objects
实用类
表单
表单类可以根据 Hydra 配置文件构建 HTML 表单。
添加元素
元素实际上只是一个回调。这个回调必须返回一个字符串值,通常是 HTML 表单元素表示。回调接收一个 Boyhagemann\Hydra\HydraProperty
,其中包含用于渲染 HTML 的有用信息。
$form->element('text', function($property) { return sprintf('<input type="text" name="%s">', $property->getName()); });
映射元素
每个属性类型都可以映射到元素。
$form->map('http://schema.org/name', 'text'); // We have added 'text' as an element earlier.
构建表单
表单 HTML 本身也可以通过回调构建。您可以使用您喜欢的渲染引擎来很好地渲染您的表单模板。
$form->build(function(Array $elements) { $form = '<form method="POST">'; $form .= implode(PHP_EOL, $elements); $form .= '</form>'; return $form; });
渲染表单
现在所有元素和映射都已完成,我们可以渲染 Hydra 类。
$form->render($hydra);
待办事项
- 添加网格或列表实用类
- 实现成员