PHPackages                             kkirsz/process-manager - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. kkirsz/process-manager

ActivePimcore-bundle[Utility &amp; Helpers](/categories/utility)

kkirsz/process-manager
======================

Process Manager helps you to see statuses for long running Processes

2.7.1(5y ago)05.8kGPL-3.0-or-laterPHP

Since Nov 16Pushed 5y agoCompare

[ Source](https://github.com/kkirsz/ProcessManager)[ Packagist](https://packagist.org/packages/kkirsz/process-manager)[ Docs](https://www.pfaffenbauer.at)[ RSS](/packages/kkirsz-process-manager/feed)WikiDiscussions master Synced 6d ago

READMEChangelog (2)Dependencies (3)Versions (26)Used By (0)

Pimcore - Process Manager
=========================

[](#pimcore---process-manager)

**Looking for the current stable (version 1)? See **

Requirements
------------

[](#requirements)

- Pimcore 5

[![Software License](https://camo.githubusercontent.com/d938dd7bcf2057c4b4663f03bbb064e15a4ab88388c9a1f0d37fd12e9a2e1271/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d47504c76332d627269676874677265656e2e7376673f7374796c653d666c6174)](LICENSE.md)

Process Manager Plugin keeps track of all your "long running jobs". It adds a nive GUI and a new portlet for your Dashboard. You can also create Executables and run them with one click. (It's planned to integrate a CRON like Syntax for recurring tasks)

Plugins using Process Manager
-----------------------------

[](#plugins-using-process-manager)

- [ImportDefinitions](https://github.com/w-vision/ImportDefinitions)

Getting started
---------------

[](#getting-started)

- Install via composer `composer require dpfaffenbauer/process-manager:^2.0`
- Enable via command-line (or inside the pimcore extension manager): `bin/console pimcore:bundle:enable ProcessManagerBundle`
- Install via command-line (or inside the pimcore extension manager): `bin/console pimcore:bundle:install ProcessManagerBundle`
- Reload Pimcore
- Open Tools -&gt; Process Manager

Integrate to your Task
----------------------

[](#integrate-to-your-task)

### Create new Process

[](#create-new-process)

```
$processFactory = $container->get('process_manager.factory.process');
$process = $processFactory->createProcess(
    sprintf(
        'Process (%s): %s',
        $date->formatLocalized('%A %d %B %Y'),
        'Special Long Running Task'
    ),                                                  //Name
    'special_task',                                     //Type
    'Message',                                          //Message Text
    100,                                                //Total Steps
    0                                                   //Current Step
);
$process->save();                                       //Save
```

### Advance the Progress

[](#advance-the-progress)

```
$process->progress();
$process->save();
```

### Finish the Progress

[](#finish-the-progress)

```
$process->setProgress($process->getTotal());
$process->save();
```

Using the Process Logger
------------------------

[](#using-the-process-logger)

Process Manager also provides you with the ability to Log what exactly happens in your progress.

```
$logger = $container->get('process_manager.logger');

//Logs a emergency message
$logger->emergency($process, 'Total of 100 entries found');

//Logs a alert message
$logger->alert($process, 'Total of 100 entries found');

//Logs a critical message
$logger->critical($process, 'Total of 100 entries found');

//Logs a error message
$logger->error($process, 'Total of 100 entries found');

//Logs a warning message
$logger->warning($process, 'Total of 100 entries found');

//Logs a notice message
$logger->notice($process, 'Total of 100 entries found');

//Logs a info message
$logger->info($process, 'Total of 100 entries found');

//Logs a debug message
$logger->debug($process, 'Total of 100 entries found');
```

Reports
-------

[](#reports)

You can also further process the log to create a pretty report. To do that, you have to create a new service and implement the interface `ProcessManagerBundle\Report\ReportInterface`. Import Definitions has an example implementation of that [Import Definition Report](https://github.com/w-vision/ImportDefinitions/blob/master/src/ImportDefinitionsBundle/ProcessManager/ImportDefinitionsReport.php)

Add a new Process Type
----------------------

[](#add-a-new-process-type)

- Add a new Class to your Bundle and implement ``ProcessManagerBundle\\Process\\ProcessInterface``` Interface
- Add a new Form Type to your Bundle and add required fields to it
- Add a new Service with tag `process_manager.process`

```
      import_definition.process_manager.process:
          class: Wvision\Bundle\ImportDefinitionsBundle\ProcessManager\ImportDefinitionProcess
          tags:
          - { name: 'process_manager.process', type: 'importdefinition', form-type: 'Wvision\Bundle\ImportDefinitionsBundle\Form\Type\ProcessManager\ImportDefinitionsType' }
```

- Thats it, done. (You still need to handle Process creation within your Bundle yourself, there is no magic behind it)

Stoppable processes
-------------------

[](#stoppable-processes)

You can implement your process to be stoppable by user via the admin panel. You need to set the stoppable flag of the process to true and it's status to `ProcessManagerBundle::STATUS_RUNNING`for the stop button to shop up:

```
$process->setStoppable(true);
$process->setStatus(ProcessManagerBundle::STATUS_RUNNING);
$process->save();

```

Additionally, you need to implement stop logic to your process. Track the process status and stop your process if it's set to `ProcessManagerBundle::STATUS_STOPPING`:

```
$process = $this->processRepository->find($processId);
if ($process->getStatus() == ProcessManagerBundle::STATUS_STOPPING) {
    // Here goes your process stop and cleanup logic
    ...

    $process->setStatus(ProcessManagerBundle::STATUS_STOPPED); // remember to set the status to stopped.
    $process->save();
}
```

Copyright and license
---------------------

[](#copyright-and-license)

Copyright: [lineofcode.at](http://www.lineofcode.at)For licensing details please visit [LICENSE.md](LICENSE.md)

[![Interface](docs/portlet.png)](docs/portlet.png)[![Interface](docs/executables.png)](docs/executables.png)[![Interface](docs/panel.png)](docs/panel.png)

###  Health Score

34

—

LowBetter than 77% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity17

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity73

Established project with proven stability

 Bus Factor1

Top contributor holds 54.5% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~62 days

Total

23

Last Release

2091d ago

Major Versions

1.1.0 → 2.0.02017-07-02

1.1.x-dev → 2.0.12017-09-25

### Community

Maintainers

![](https://www.gravatar.com/avatar/671c1cca4145fc29c28e6a80bae627c00177cfd63030b60180d805aff5bdfcdc?d=identicon)[kkirsz](/maintainers/kkirsz)

---

Top Contributors

[![dpfaffenbauer](https://avatars.githubusercontent.com/u/5981845?v=4)](https://github.com/dpfaffenbauer "dpfaffenbauer (48 commits)")[![kkirsz](https://avatars.githubusercontent.com/u/26323830?v=4)](https://github.com/kkirsz "kkirsz (20 commits)")[![dkarlovi](https://avatars.githubusercontent.com/u/209225?v=4)](https://github.com/dkarlovi "dkarlovi (12 commits)")[![roynilsson](https://avatars.githubusercontent.com/u/18714244?v=4)](https://github.com/roynilsson "roynilsson (3 commits)")[![kubaplas](https://avatars.githubusercontent.com/u/1809664?v=4)](https://github.com/kubaplas "kubaplas (2 commits)")[![wpeisert](https://avatars.githubusercontent.com/u/15231891?v=4)](https://github.com/wpeisert "wpeisert (2 commits)")[![aarongerig](https://avatars.githubusercontent.com/u/17384333?v=4)](https://github.com/aarongerig "aarongerig (1 commits)")

---

Tags

pimcorepimcore-plugin

### Embed Badge

![Health badge](/badges/kkirsz-process-manager/health.svg)

```
[![Health](https://phpackages.com/badges/kkirsz-process-manager/health.svg)](https://phpackages.com/packages/kkirsz-process-manager)
```

###  Alternatives

[dpfaffenbauer/process-manager

Process Manager helps you to see statuses for long running Processes

3289.3k2](/packages/dpfaffenbauer-process-manager)[instride/data-definitions

Data Definitions allows you to define your DataObject Imports and Exports using a nice GUI and re-run the definitions as often you like.

8117.7k](/packages/instride-data-definitions)[youwe/workflow-gui

Workflow Configuration UI for Pimcore

2884.6k](/packages/youwe-workflow-gui)[dachcom-digital/formbuilder

Pimcore FormBuilder - create forms easily!

96269.7k](/packages/dachcom-digital-formbuilder)[dachcom-digital/schema

Pimcore Schema

1075.7k](/packages/dachcom-digital-schema)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
