工作流组件
编辑该页面工作流组件
工作流组件提供工具来管理一个工作流或有限状态机。
安装
1
美元作曲家需要symfony /工作流ob娱乐下载
请注意
如果你安装这个组件之外的Symfony应用程序,你必须要求ob娱乐下载供应商/ autoload.php
文件在你的代码,使作曲家提供的类加载机制。读这篇文章为更多的细节。
创建一个工作流
工作流组件给你一个面向对象的方法定义一个过程或一个你的对象的生命周期经历。每一个步骤或阶段的过程被称为的地方。您还做定义转换描述的行动从一个地方到另一个地方。
一组和转换创建了一个地方定义。一个工作流需要一个定义
和写美国的对象(即一个实例MarkingStoreInterface)。
考虑下面的例子为一个博客。一篇文章可以有一个预定义的状态(草案
,综述了
,拒绝了
,发表
)。在工作流中,这些状态的地方。您可以定义工作流是这样的:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
使用ob娱乐下载\组件\工作流\DefinitionBuilder;使用ob娱乐下载\组件\工作流\MarkingStore\MethodMarkingStore;使用ob娱乐下载\组件\工作流\过渡;使用ob娱乐下载\组件\工作流\工作流;美元definitionBuilder=新DefinitionBuilder ();美元定义=美元definitionBuilder- >addPlaces ([“草案”,“审查”,“拒绝”,“发布”])/ /转换定义了一个独特的名字,一个来源和目的地的地方- >addTransition (新过渡(“to_review”,“草案”,“审查”))- >addTransition (新过渡(“发布”,“审查”,“发布”))- >addTransition (新过渡(“拒绝”,“审查”,“拒绝”))- >build ();美元singleState=真正的;/ /如果这个主题可以在只有一个国家在给定的时间美元财产=的现状后;/ /主题属性名的存储状态美元标记=新MethodMarkingStore (美元singleState,美元财产);美元工作流=新工作流(美元定义,美元标记);
的工作流
现在可以帮你决定吗转换(操作)在一篇博客文章被允许根据什么的地方(状态)。这将让你的域逻辑在一个地方而不是遍布你的应用程序。
使用
这里有一个例子使用上面定义的工作流:
1 2 3 4 5 6 7 8 9 10 11
/ /……/ /考虑到美元的blogPost默认“草案”美元博客=新BlogPost ();美元工作流- >可以(美元博客,“发布”);/ /错误美元工作流- >可以(美元博客,“to_review”);/ /正确的美元工作流- >应用(美元博客,“to_review”);/ /现在美元的blogPost“综述”美元工作流- >可以(美元博客,“发布”);/ /正确的美元工作流- >getEnabledTransitions (美元博客);/ /美元还可以执行过渡“发布”或“拒绝”
初始化
如果您的对象的属性零
你想设置的initial_marking
从配置中,您可以调用getMarking ()
方法来初始化对象属性:
1 2 3 4 5
/ /……美元博客=新BlogPost ();/ /启动工作流美元工作流- >getMarking (美元博客);
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。
TOC
版本
版本: