back-2-95/fields

该软件包已被弃用且不再维护。未建议替代软件包。
该软件包的最新版本(v0.2)没有可用的许可证信息。

PHP7的CRUD字段API

v0.2 2016-03-28 18:30 UTC

This package is auto-updated.

Last update: 2020-11-11 11:22:05 UTC


README

PHP7的通用字段API。此库仅处理与实体及其相关字段相关的元数据。

Travis CI PHP version

Graph

待办事项

我会在库可用之前保持此待办事项列表在顶部。

  • 验证和强制字段数据结构。现在它们只是任何东西的数组。(进行中)
  • 在此结构中,尝试分离通用、表单和显示相关的数据。
  • 实现示例(自建仓库)例如使用字段API、mongodb存储和zf2类别的应用程序

API

创建API并设置存储

$api = new \BackTo95\Fields\Api();
$storage = new \BackTo95\Fields\Storage\FileStorage('data/entities');
$api->setStorage($storage);

使用字段创建EntityConfiguration

$track_configuration = new \BackTo95\Fields\Entity\EntityConfiguration([
    'name' => 'track',
    'description' => 'Track represents musical track made with tracker software',
    'fields' => [
        'title' => [...],
        'description' => [...],
    ],
]);

存储创建的EntityConfiguration

$api->storeEntityConfiguration($track_configuration);

按名称获取存储的EntityConfiguration

$api->getEntityConfiguration('track');

EntityConfiguration数据

示例实体:track(如音乐)

[
    'name' => 'track',
    'description' => 'Track represents musical track made with tracker software',
    'fields' => [
        'artist' => [
            'name' => 'artist',
            'form' => [
                'widget' => 'text',
                'filters' => ['trim'],
            ],
            'required' => 1,
        ],
        'title' => [
            'name' => 'title',
            'form' => [
                'widget' => 'text',
            ],
            'required' => 1,
        ],
        'description' => [
            'name' => 'description',
            'form' => [
                'widget' => 'editor',
            ],
        ],
        'cover' => [
            'name' => 'cover',
            'form' => [
                'widget' => 'image',
            ],
        ],
        'genre' => [
            'name' => 'genre',
            'form' => [
                'widget' => 'tags',
                'validators' => [
                    'min' => 1
                ],
            ],
            'multivalue' => 1,
            'required' => 1,
        ],
    ]
],

注释:小部件名称可以是任何东西,实现库将决定最终的小部件是什么。例如,"editor"小部件可以是CKeditor、TinyMCE或其他。

输出

此库应仅返回实体及其字段配置,然后可以由其他组件用于存储、渲染、验证等。

渲染

渲染不是此类别的责任。

创建配置的UI

UI不是此库的一部分。它应该是另一个库,该库需要并使用此库。

存储

存储此配置不是此库的一部分,例如https://github.com/back-2-95/fields-mongodb

此库为存储适配器提供接口,并提供基于文件的解决方案作为示例。

默认情况下,此适配器使用路径data/entities来存储配置。