PHPackages                             dpfaffenbauer/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. dpfaffenbauer/process-manager

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

dpfaffenbauer/process-manager
=============================

Process Manager helps you to see statuses for long running Processes

3.1.1(2y ago)3091.6k↓35.5%202GPL-3.0-or-laterPHPCI failing

Since Nov 16Pushed 11mo ago2 watchersCompare

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

READMEChangelog (10)Dependencies (3)Versions (32)Used By (2)

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

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

> *ARCHIVED*: This will no longer be maintained!

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

[](#requirements)

- Pimcore 11

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

Process Manager Plugin keeps track of all your "long running jobs". It adds a native 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)

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

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();
}
```

Cleanup command
---------------

[](#cleanup-command)

You can execute a cleanup command from the console to delete old process entries and log files. To do this on a regular basis, you can add it as a cronjob.

```
# delete all process entries from the database and log files older than 604800 seconds (7 days)
$ ./bin/console process-manager:cleanup-process-data

# delete all process entries from the database and log files older than 86400 seconds (1 days)
$ ./bin/console process-manager:cleanup-process-data --seconds=86400

# delete only process entries from the database older than 604800 seconds (7 days) and keep the log files
$ ./bin/console process-manager:cleanup-process-data --keeplogs
```

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

48

—

FairBetter than 93% of packages

Maintenance38

Infrequent updates — may be unmaintained

Popularity43

Moderate usage in the ecosystem

Community25

Small or concentrated contributor base

Maturity74

Established project with proven stability

 Bus Factor1

Top contributor holds 60.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 ~84 days

Recently: every ~28 days

Total

31

Last Release

995d ago

Major Versions

1.1.0 → 2.0.02017-07-02

1.1.x-dev → 2.0.12017-09-25

2.6.2 → 3.0.02023-03-08

2.6.x-dev → 3.1.02023-06-19

3.1.0 → 4.0.0-beta.12023-09-27

### Community

Maintainers

![](https://www.gravatar.com/avatar/e6629cd742a482f40408226816e9cacb5e649ccb53973872a60e56638b2c55e9?d=identicon)[dpfaffenbauer](/maintainers/dpfaffenbauer)

---

Top Contributors

[![dpfaffenbauer](https://avatars.githubusercontent.com/u/5981845?v=4)](https://github.com/dpfaffenbauer "dpfaffenbauer (89 commits)")[![dkarlovi](https://avatars.githubusercontent.com/u/209225?v=4)](https://github.com/dkarlovi "dkarlovi (32 commits)")[![mugge6](https://avatars.githubusercontent.com/u/16953779?v=4)](https://github.com/mugge6 "mugge6 (9 commits)")[![aarongerig](https://avatars.githubusercontent.com/u/17384333?v=4)](https://github.com/aarongerig "aarongerig (3 commits)")[![roynilsson](https://avatars.githubusercontent.com/u/18714244?v=4)](https://github.com/roynilsson "roynilsson (3 commits)")[![wpeisert](https://avatars.githubusercontent.com/u/15231891?v=4)](https://github.com/wpeisert "wpeisert (3 commits)")[![kubaplas](https://avatars.githubusercontent.com/u/1809664?v=4)](https://github.com/kubaplas "kubaplas (2 commits)")[![hethehe](https://avatars.githubusercontent.com/u/105442500?v=4)](https://github.com/hethehe "hethehe (2 commits)")[![damijank](https://avatars.githubusercontent.com/u/19417312?v=4)](https://github.com/damijank "damijank (1 commits)")[![ramundomario](https://avatars.githubusercontent.com/u/16133208?v=4)](https://github.com/ramundomario "ramundomario (1 commits)")[![slri](https://avatars.githubusercontent.com/u/5960747?v=4)](https://github.com/slri "slri (1 commits)")[![das-peter](https://avatars.githubusercontent.com/u/177531?v=4)](https://github.com/das-peter "das-peter (1 commits)")

---

Tags

pimcorepimcore-pluginpimcorepimcore-plugin

### Embed Badge

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

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

###  Alternatives

[pimcore/data-importer

Adds a comprehensive import functionality to Pimcore Datahub

46855.5k5](/packages/pimcore-data-importer)[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.

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

Workflow Configuration UI for Pimcore

2888.3k](/packages/youwe-workflow-gui)

PHPackages © 2026

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