caleeli/laravel-nayra

Nayra 的 Laravel 驱动程序

0.6.0 2023-10-12 16:01 UTC

This package is auto-updated.

Last update: 2024-09-12 17:47:48 UTC


README

这是一个将 Nayra BPMN 引擎初始化到 Laravel 项目的包。

首先创建一个 Laravel 应用程序。

配置数据库 配置队列服务

添加到 composer.json

将此存储库添加到 composer.json

    "repositories": [
        {
          "type": "vcs",
          "url": "https://github.com/caleeli/laravel-nayra.git"
        }
    ],

然后运行

composer require processmaker/laravel-nayra

BPMN 示例

您可以在本项目中找到 BPMN 示例 [./bpmp/example.bpmn]

将此 BPMN 复制到您的 Laravel 项目中。

Web 路由示例

<?php

use Illuminate\Support\Facades\Route;
use ProcessMaker\Laravel\Facades\Nayra;
use ProcessMaker\Laravel\Models\Request;

Route::get('/start', function() {
    $request = Nayra::startProcess(base_path('bpmn/example.bpmn'), 'node_1');
    return redirect('/status/' . $request->getId());
});

Route::get('/status/{requestId}', function($requestId) {
    $instance = Nayra::getInstanceById($requestId);
    $request = Request::find($requestId);
    return view('request', compact('request', 'instance'));
});

Route::get('/complete/{requestId}/{tokenId}', function($requestId, $tokenId) {
    $request = Nayra::completeTask($requestId, $tokenId);
    return redirect('/status/' . $request->getId());
});

跟随流程的 blade 模板

创建一个 blade 模板 [resources/views/request.blade.php]

<pre>
[<a href="/start">Start a New Request</a>]
<u>Request Id</u>: {{ $instance->getId() }}
<u>Status</u>: {{ $request->status }}
<u>Active Tasks</u>:
@foreach($instance->getTokens() as $token)
 - {{ $token->getOwnerElement()->getName() }} @if(in_array($token->getOwnerElement()->getBpmnElement()->localName, ['task', 'userTask'])) [<a href="/complete/{{ $instance->getId() }}/{{ $token->getId() }}">complete</a>]@endif

@endforeach
<u>Data</u>:
@json((object) $instance->getDataStore()->getData(), JSON_PRETTY_PRINT)
</pre>
<script>
setInterval('location.reload()', 5000);
</script>

启动您的 Laravel 应用程序

启动 web 服务

php artisan serve

启动队列服务

php artisan queue:work

打开已启动的 web 服务器: http://127.0.0.1:8000/start