davin-bao/workflow

这是一个为laravel5设计的流程包

dev-master 2016-08-19 06:25 UTC

This package is auto-updated.

Last update: 2024-09-21 20:28:14 UTC


README

感谢tao2581,如果您需要将其用于laravel 4,请添加

"davin-bao/workflow": "v1.0"

Workflow包提供了一种简单的方法将审计流程添加到Laravel5

快速开始

所需配置

composer.json文件的require键中添加以下内容:

"davin-bao/workflow": "dev-master"

运行Composer更新命令

$ composer update

在您的config/app.php中,将'DavinBao\Workflow\WorkflowServiceProvider'添加到$providers数组的末尾

'providers' => array(

    'Illuminate\Foundation\Providers\ArtisanServiceProvider',
    'Illuminate\Auth\AuthServiceProvider',
    ...
    'DavinBao\Workflow\WorkflowServiceProvider',

),

config/app.php的末尾,将'Workflow' => 'DavinBao\Workflow\WorkflowFacade'添加到$aliases数组中

'aliases' => array(

    'App'        => 'Illuminate\Support\Facades\App',
    'Artisan'    => 'Illuminate\Support\Facades\Artisan',
    ...
    'Workflow'       => 'DavinBao\Workflow\WorkflowFacade',

),

配置

创建表

现在生成Workflow迁移

$ php artisan workflow:migration

它将生成<timestamp>_workflow_setup_tables.php迁移。您现在可以运行它使用Artisan迁移命令:打开<timestamp>_workflow_setup_tables.php,将"{{ '<?php' }}"更改为" <?php ",然后运行 $ php artisan migrate

迁移后,将存在工作流表。

创建控制器

$ php artisan workflow:controllers

创建路由

$ php artisan workflow:routes

链接模型

    class Entry extends Eloquent {
      use \DavinBao\Workflow\HasFlowForResource;
    }

添加两个审计日志功能,审计流程将记录此资源的标题和内容

		public function getLogTitle()
		{
			return $this->entry_title;
		}
		
		public function getLogContent()
		{
			return $this->entry_content;
		}

链接控制器

		class AdminEntryController extends AdminController {
				use \DavinBao\Workflow\HasFlowForResourceController;
		}

为该控制器添加角色

		Route::get('entrys/{entry}/binding', 'AdminEntrysController@getBindingFlow');
		Route::post('entrys/{entry}/binding', 'AdminEntrysController@postBindingFlow');
		Route::get('entrys/{entry}/audit', 'AdminEntrysController@getAudit');
		Route::post('entrys/{entry}/audit', 'AdminEntrysController@postAudit');

修改配置

将属性值设置到config/auth.phpdavin-bao/workflow/src/config/config.php中。

函数

获取是否绑定审计流程

    if(isset($entry->isBinding)) {///is binding, do something }

获取资源审计状态

    $entry->status()

显示流程图,显示此资源审计流程状态

@if(isset($entry->isBinding))
{{ Workflow::makeFlowGraph($entry->flow(), $entry->orderID()) }}
@endif

显示审计流程所有详情

 @if(isset($entry->isBinding))
{{ Workflow::makeAuditDetail($entry) }}
@endif

需要审计,显示审计按钮

    if(isset($entry->isBinding) && $entry->isMeAudit()) { /// show audit button }