zef-dev / convoworks-pckg-forms
包含Convoworks框架中管理表单的会话工作流程元素。
Requires
- php: ^7.2
- psr/log: ^1.1.0
- zef-dev/convoworks-core: ^0.22.17
Requires (Dev)
- phpunit/phpunit: ^8
README
本包包含Convoworks框架中管理表单条目场景的会话工作流程元素。它包含您可以在会话工作流程中使用的元素,但表单数据源仅通过IFormsContext接口进行描述。
当我们谈论工作流程组件(元素)时,我们主要需要考虑语音和会话设计需求。它们的属性、子流程和一般行为都经过定制,以便使会话工作流程尽可能容易。它们与任何特定的表单插件或类似的第三方服务提供商无关。
表单上下文另一方面是工作流程元素(Convoworks)与您在系统中使用的实际、具体的表单插件之间的桥梁。
表单包优先使用字段键而不是数字ID。当您创建或更新条目时,请使用字段键来定义数据。当您加载数据时,它们将包含一个meta_values
字段,它是一个包含字段键/字段值对的关联数组。
表单上下文接口
IFormsContext
描述了目标表单系统应实现的方法。如果您例如有WordPress Formidable Forms插件,您可以通过实现此接口轻松启用它与Convoworks一起使用。
为了正确地在Convoworks GUI中使用,它还必须实现IBasicServiceComponent
和IServiceContext
。您可以考虑从以下方式开始您的实现
class MyCustomFormsContext extends AbstractBasicComponent implements IFormsContext, IServiceContext { }
您可以在Convoworks文档中了解更多关于开发自定义包的信息,您还可以检查我们的Convoworks WP插件包模板。
DummyFormContext
一个虚拟实现,可以用来测试语音应用程序或作为创建自己的IFormsContext
实现时的示例。
以下是它具有的一些预定义功能
- 它将在Convoworks用户范围内存储条目
- 必填字段(用于错误处理)
工作流程元素
所有表单包工作流程元素都具有context_id
属性,它们将其连接到实现IFormsContext
接口的上下文。这样,元素集中在会话工作流程需求上,而实际的业务逻辑则委托给具体的实现。
以下是所有常见参数
context_id
- 引用的表单上下文(实现IFormsContext
的上下文组件)的IDresult_var
- 包含结果的变量。对于每个元素都不同,所以将在下面描述。
某些元素根据我们得到的结果具有多个子流程。这种方法的这种类型允许您在您的流程中使用更少的IF
语句。但为了不强迫您拆分流程,其中一些流程是可选的,当留空时,将执行默认流程。
CreateEntryElement
此元素将创建一个条目并返回新创建的entry_id。
参数
entry
- 要写入的条目数据(一个键值对)result_var
- 默认status
,包含附加信息的变量的名称。如果条目已创建(entry_id
:新创建的条目ID),如果失败(message
:字符串消息,errors
:详细错误的数组)
流程
ok
- 当条目可以创建时执行validation_error
- 当条目有验证错误时执行
UpdateEntryElement
用于更新现有条目数据的元素。
参数
entry_id
- 现有条目的IDentry
- 将覆盖之前数据的条目数据(键值对)result_var
- 默认status
,包含额外信息的变量名称。如果条目更新(previous
:更新前的条目数据,updated
:更新后的条目),如果失败(message
:字符串消息,errors
:详细错误数组)
流程
ok
- 当条目更新时执行validation_error
- 当条目有验证错误时执行
DeleteEntryElement
此元素将删除现有条目。
参数
entry_id
- 现有条目的IDresult_var
- 默认status
,包含额外信息的变量名称(previous
:与加载条目元素获得的先前表单条目相同)
流程
ok
- 当条目被删除时执行
LoadEntryElement
此元素将根据ID加载现有条目。
参数
entry_id
- 现有条目的IDresult_var
- 默认status
,包含额外信息的变量名称(entry
)
流程
ok
- 当条目加载时执行
单个条目以JSON表示。
{ "entry_id" : "123", "user_id" : "123", "meta_values" : { "key_1" : "value 1", "key_2" : "value 2" } }
SearchEntryElement
此元素通过给定的搜索参数搜索条目。
参数
search
- 搜索过滤器。由引用的表单上下文定义。offset
- 偏移量limit
- 限制order_by
- 字段名(由表单上下文实现定义)和排序顺序(ASC|DESC)的键/值对result_var
- 默认status
,包含额外信息的变量名称(result
:条目值数组)
流程
ok
- 当表单加载时执行not found
- 如果没有找到条目将执行
有关更多信息,请访问 convoworks.com