PHPackages                             arvodia/grouper - 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. arvodia/grouper

ActiveComposer-plugin[Utility &amp; Helpers](/categories/utility)

arvodia/grouper
===============

Composer plugin, package and tasks manager by group

1.3.0(4y ago)0333MITPHP

Since May 9Pushed 4y ago1 watchersCompare

[ Source](https://github.com/arvodia/grouper)[ Packagist](https://packagist.org/packages/arvodia/grouper)[ Docs](https://github.com/arvodia/grouper/)[ RSS](/packages/arvodia-grouper/feed)WikiDiscussions main Synced yesterday

READMEChangelog (1)Dependencies (3)Versions (16)Used By (0)

[![EURL ARVODIA Logo](https://raw.githubusercontent.com/arvodia/src/main/img/arvodia-logo.png)](https://raw.githubusercontent.com/arvodia/src/main/img/arvodia-logo.png)

Composer plugin, package and tasks manager by group
===================================================

[](#composer-plugin-package-and-tasks-manager-by-group)

Grouper is a composer plug-in that allows you to place the packages in a group, to install or uninstall the packages of a group with a single command.

Grouper scripts are called tasks they can copy files, directories or shrink css and js files.

The advantage of grouper with other CSS and JavaScript supports, there is no need to run any additional script. resource files are automatically updated and minified after `composer update`

Contents
--------

[](#contents)

- [Feature](#feature)
- [Installation](#installation)
- [Example](#example)
- [Commands](#commands)
- [Tasks](#tasks)
    - [Tasks type](#tasks-type)
    - [Packages Tasks](#packages-tasks)
    - [Groups Tasks](#groups-tasks)
    - [Tasks Option](#tasks-option)
- [Configuration](#configuration)
- [Uninstall](#uninstall)
- [Changelog](#changelog)
- [Git clone](#git-clone)
- [Contact](#contact)
- [License](#license)

Feature
-------

[](#feature)

- Grouping packages in a single name
- Activate a group install all these packages and run task
- Tasks to be performed for groups and packages
    - File mapping and css, js minification
    - File patcher
    - File, folder Remove
- Interactive commands
- Interactive initialization of the grouper.json file
- Interactive group ans task manager
- Stylized display messages

Installation
------------

[](#installation)

Integrate grouper into your project with composer.

```
composer require arvodia/grouper

```

initialize grouper

```
composer grouper:init

```

Example
-------

[](#example)

Managing CSS and JavaScript, in this example we will group `bootstraps`, `bootstrap-admin`, `jquery`, `popper` and `font-awesome`, in a deul group. and also use grouper tasks to create public/src folder, copy and minify only necessary files. You can also do a lot of other things with grouping.

### Step 1

[](#step-1)

install grouper and minify

```
composer require arvodia/grouper

```

### Step 2

[](#step-2)

add repositories to your project, dans le fichier composer. json add these lines :

```
"repositories": [
    {
        "type": "composer",
        "url": "https://asset-packagist.org"
    }
]

```

### Step 3

[](#step-3)

Copy the example [file](https://github.com/arvodia/grouper/blob/main/src/Resources/examples/grouper.json "file") to your working directory

```
cp vendor/arvodia/grouper/src/Resources/examples/grouper.json .

```

### Step 4

[](#step-4)

and finally there is more to activate the group.

```
composer grouper:group arvodia-asset activate

```

You will find in the public/src folder all the assets you will need for your website.

### Note

[](#note)

Explanation of some parameters in the file grouper.json, you notice that the name of the tasks is suffixed by `-overwrite` it is to overwrite the files for the update, and the option `"uninstall": true` it is to remove add files, with the deactivation group.

Commands
--------

[](#commands)

- `composer grouper:group`
    - Group Manager command : activate, deactivate, create, delete add and remove
- `composer grouper:groups`
    - Shows information about all available groups.
- `composer grouper:init`
    - Creates a basic grouper.json file in composer working directory.
- `composer grouper:task`
    - Add, run or delete the task setting for the group or package.

Tasks
-----

[](#tasks)

Tasks can be added interactively to group packages or on the group itself.

### Tasks type

[](#tasks-type)

There are three types of tasks :

- file-mapping
- file-mapping-overwrite
- css-minifying
- css-minifying-overwrite
- js-minifying
- js-minifying-overwrite
- file-patcher
- file-dir-remove

Each one of these tasks needs two parameters: `source` and `destination`

- source group
    - The path compared to the location of composer.json
- source package
    - The path relative to the location of the package itself
- destination
    - The path compared to the location of composer.json

### Packages Tasks

[](#packages-tasks)

They are executed if the group is activated and during the following events :

- post-package-install
- post-package-update

### Groups Tasks

[](#groups-tasks)

They are executed only at the end of the activation of a group. They are only executed at the end of the post update|install if one of these packages has been checked.

### Tasks Option

[](#tasks-option)

For instemp only one option `uninstall` if it is enabled, after disabling group, all added files or folders will be deleted.

Configuration
-------------

[](#configuration)

Configuration are placed in a grouper.json, but do not change this file manually, rather use commands grouper for the management of you groups.

Uninstall
---------

[](#uninstall)

The configuration file grouper.json, it will be deleted if you will uninstall grouper package.

Changelog
---------

[](#changelog)

A changelog, the changelog, the list of changes, presented in descending order of changes, and grouped by version. link : [CHANGELOG](https://github.com/arvodia/grouper/blob/main/CHANGELOG.md "CHANGELOG")From version 1.0.5 the commit text represents the working version.

Git clone
---------

[](#git-clone)

```
$ git clone https://github.com/arvodia/grouper.git

```

Contact
-------

[](#contact)

 - EURL ARVODIA

License
-------

[](#license)

MIT License

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity12

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity60

Established project with proven stability

 Bus Factor1

Top contributor holds 100% 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 ~24 days

Recently: every ~41 days

Total

15

Last Release

1494d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/34461222?v=4)[Redouane](/maintainers/arvodia)[@arvodia](https://github.com/arvodia)

---

Top Contributors

[![arvodia](https://avatars.githubusercontent.com/u/34461222?v=4)](https://github.com/arvodia "arvodia (40 commits)")

---

Tags

commandscomposergrouperinteractiveplugintasksphpplugincomposergroupspackagesTasks

### Embed Badge

![Health badge](/badges/arvodia-grouper/health.svg)

```
[![Health](https://phpackages.com/badges/arvodia-grouper/health.svg)](https://phpackages.com/packages/arvodia-grouper)
```

###  Alternatives

[ergebnis/composer-normalize

Provides a composer plugin for normalizing composer.json.

1.1k37.3M2.1k](/packages/ergebnis-composer-normalize)[pyrech/composer-changelogs

Display changelogs after each composer update

5904.0M25](/packages/pyrech-composer-changelogs)[philippbaschke/acf-pro-installer

An install helper for Advanced Custom Fields PRO

283724.6k](/packages/philippbaschke-acf-pro-installer)[netresearch/composer-patches-plugin

Composer patches plugin

80262.1k7](/packages/netresearch-composer-patches-plugin)[opengento/composer-registration-plugin

This plugin allows to compile the Magento2 components registrations on composer install/update.

111.6k](/packages/opengento-composer-registration-plugin)

PHPackages © 2026

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