简单的 PHP Hydra 封装类

dev-master 2014-05-01 14:23 UTC

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);

待办事项

  • 添加网格或列表实用类
  • 实现成员