caleeli / laravel-nayra
Nayra 的 Laravel 驱动程序
0.6.0
2023-10-12 16:01 UTC
Requires
- processmaker/nayra: ^1.9.4
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