PHP code example of shahajahan / approval-flow

1. Go to this page and download the library: Download shahajahan/approval-flow library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

shahajahan / approval-flow example snippets


use ApprovalFlow\Services\ApprovalFlow;
use ApprovalFlow\Adapters\LaravelAdapter;

$flow = new ApprovalFlow(new LaravelAdapter());

$nextRole = $flow->nextRole(2);
$prevRole = $flow->previousRole(2);
$canApprove = $flow->canApprove(auth()->id(), $documentId);

$flow = new \ApprovalFlow\Services\ApprovalFlow(
    new \ApprovalFlow\Adapters\CodeIgniterAdapter($this)
);

$next = $flow->nextRole($currentRoleId);
$canApprove = $flow->canApprove($user_id, $doc_id);

use ApprovalFlow\Services\ApprovalFlow;
use ApprovalFlow\Adapters\SymfonyAdapter;
use Doctrine\ORM\EntityManagerInterface;

// Assuming you have injected the EntityManager
$adapter = new SymfonyAdapter($entityManager);
$flow = new ApprovalFlow($adapter);

$nextRole = $flow->nextRole(1);

use ApprovalFlow\Services\ApprovalFlow;
use ApprovalFlow\Adapters\CakePHPAdapter;
use Cake\ORM\TableRegistry;

// Get the default ORM table
$usersTable = TableRegistry::getTableLocator()->get('Users');
$adapter = new CakePHPAdapter($usersTable);
$flow = new ApprovalFlow($adapter);

$nextRole = $flow->nextRole(1);

use ApprovalFlow\Services\ApprovalFlow;
use ApprovalFlow\Adapters\PdoAdapter;

$pdo = new PDO("mysql:host=localhost;dbname=test", "root", "");
$adapter = new PdoAdapter($pdo);
$flow = new ApprovalFlow($adapter);

if ($flow->canApprove(1, 100)) {
    echo "User can approve document!";
}

approval_log("Approval started...");
// Output: [ApprovalFlow] 2025-10-13 11:00:00 - Approval started...
bash
./vendor/bin/phpunit --bootstrap vendor/autoload.php tests

approval-flow/
│
├── src/
│   ├── Contracts/ApproverInterface.php
│   ├── Services/ApprovalFlow.php
│   ├── Adapters/
│   │   ├── LaravelAdapter.php
│   │   ├── CodeIgniterAdapter.php
│   │   └── PdoAdapter.php
│   └── Helpers/helper.php
│
├── tests/
│   └── ApprovalFlowTest.php
└── composer.json