2017 © Pedro Peláez
 

yii2-extension yii2-workflow

Yii 2 Library to configure workflows

image

tecnocen/yii2-workflow

Yii 2 Library to configure workflows

  • Monday, July 23, 2018
  • by Faryshta
  • Repository
  • 9 Watchers
  • 9 Stars
  • 467 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 2 Forks
  • 0 Open issues
  • 5 Versions
  • 0 % Grown

The README.md

Yii2 Workflow

Library to dynamically handle workflows in a database with ROA support., (*1)

Latest Stable Version Total Downloads, (*2)

Travis Build Status Travis, (*3)

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system., (*4)

Prerequisites

The rest of the requirements are checked by composer when installing the repository on the next step., (*5)

### Installation

You can use composer to install the library tecnocen/yii2-workflow by running the command;, (*6)

composer require tecnocen/yii2-workflow, (*7)

or edit the composer.json file, (*8)

require: {
    "tecnocen/yii2-workflow": "*",
}

Deployment

Then run the required migrations, (*9)

php yii migrate/up -p=@tecnocen/workflow/migrations, (*10)

Which will install the following table structure, (*11)

Database Diagram, (*12)

#### ROA Backend Usage

The ROA support is very simple and can be done by just adding a module version to the api container which will be used to hold the resources., (*13)

class Api extends \tecnocen\roa\modules\ApiContainer
{
    public $versions = [
       // other versions
       'w1' => ['class' => 'tecnocen\workflow\roa\modules\Version'],
   ];
}

You can then access the module to check the available resources., (*14)

Which will implement CRUD functionalities for a workflow., (*15)

#### Process and Worklog

A process is an entity which changes from stage depending on a workflow. Each stage change is registered on a worklog for each process record., (*16)

To create a process its required to create a migrations for the process and the worklog then the models to handle them, its adviced to use the provided migration templates., (*17)

class m170101_010101_credit extends EntityTable
{
    public function getTableName()
    {
        return 'credit';
    }

    public function columns()
    {
         return [
             'id' => $this->primaryKey(),
             'workflow_id' => $this->normalKey(),
             // other columns
         ];
    }

    public function foreignKeys()
    {
        return [
            'workflow_id' => ['table' => 'tecnocen_workflow'];
        ];
    }
}
class m170101_010102_credit_worklog extends \tecnocen\workflow\migrations\WorkLog
{
    public function getProcessTableName()
    {
        return 'credit';
    }
}

After running the migrations its necessary to create Active Record models., (*18)

class Credit extends \tecnocen\workflow\models\Process
{
    protected function workflowClass()
    {
        return CreditWorklog::class;
    }

    public function getWorkflowId()
    {
        return $this->workflow_id;
    }

    public function rules()
    {
        return \yii\helpers\ArrayHelper::merge(parent::rules(), [
            // other rules here
        ]);
    }
}
class CreditWorkLog extends \tecnocen\workflow\models\WorkLog
{
    public static function processClass()
    {
        return Credit::class;
    }
}

#### Worklog Resource

Each process gets a worklog about the flow of stages it goes through., (*19)

On ROA you can declare each worklog as a child resource for the process resource, (*20)

public $resources = [
   'credit',
   'credit/<credit_id:\d+>/worklog' => [
       'class' => WorklogResource::class,
       'modelClass' => CreditWorklog::class,
   ]
];

Running the tests

This library contains tools to set up a testing environment using composer scripts, for more information see Testing Environment section., (*21)

Break down into end to end tests

Once testing environment is setup, run the following commands., (*22)

composer deploy-tests

Run tests., (*23)

composer run-tests

Run tests with coverage., (*24)

composer run-coverage

Live Demo

You can run a live demo on a freshly installed project to help you run testing or understand the responses returned by the server. The live demo is initialized with the command., (*25)

php -S localhost:8000 -t tests/_app

Where :8000 is the port number which can be changed. This allows you call ROA services on a browser or REST client., (*26)

Use Cases

TO DO, (*27)

Built With

Code of Conduct

Please read CODE_OF_CONDUCT.md for details on our code of conduct., (*28)

Contributing

Please read CONTRIBUTING.md for details on the process for submitting pull requests to us., (*29)

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository., (*30)

Considering SemVer for versioning rules 9, 10 and 11 talk about pre-releases, they will not be used within the Tecnocen-com., (*31)

Authors

See also the list of contributors who participated in this project., (*32)

License

This project is licensed under the MIT License - see the LICENSE.md file for details, (*33)

Acknowledgments

  • TO DO - Hat tip to anyone who's code was used
  • TO DO - Inspiration
  • TO DO - etc

yii2-workflow, (*34)

The Versions

27/10 2017

0.1.0

0.1.0.0

Yii 2 Library to configure workflows

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

framework yii2 workflow