PHPackages                             alexccavaco/jomi - 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. alexccavaco/jomi

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

alexccavaco/jomi
================

Minifier for PHP

0.1.5.1(6y ago)138MITPHPPHP &gt;=5.3.0

Since May 27Pushed 6y agoCompare

[ Source](https://github.com/AlexCCavaco/JoMi)[ Packagist](https://packagist.org/packages/alexccavaco/jomi)[ RSS](/packages/alexccavaco-jomi/feed)WikiDiscussions master Synced yesterday

READMEChangelog (9)Dependencies (1)Versions (10)Used By (0)

JoMi
====

[](#jomi)

Minifier for PHP

JoMi Joins and Minifies one or multiple files into one. It can use .json files (called modules) to configure file manipulations or do so via the class itself. Manipulations happen when any of the source files are changed, otherwise, no processing occurs.

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

[](#installation)

```
composer require alexccavaco/jomi

```

Running JoMi moduled in Class
-----------------------------

[](#running-jomi-moduled-in-class)

```
$mod = JoMi::runUsing($name, $config, $vars);
$mod->add($arrayOfFiles, $pathToDestination, $type);
$mod->run();

```

JoMi::runUsing() takes three arguments. The first represents the name of the module and is required, the second is a configuration array and the third an array o variables (to be used to ease file paths). The last two are optional.

Configurations:

- "module-location" - Represents the folder where modules are stored
- "file-base-path" - Represents the base folder of the files

**Note:** The module-location is also the place JoMi uses to store and remember previous update times.

The add method creates a minified instance of $arrayOfFiles pointing to $pathToDestination. The latter containing both the joined and the minified data (after running). The third and last argument establishes the type of files being handled, currently css or js files only. This argument is optional, and if it's not set, JoMi will look into the $pathToDestination file type (.css or .js) to make the decision.

The add method can be chained as exemplified below:

```
JoMi::runUsing($name, $config, $vars)->add(...)->add(...)->run();

```

Running JoMi using Module Files
-------------------------------

[](#running-jomi-using-module-files)

```
JoMi::runModule($name, $config, $vars);

```

JoMi::runModule() takes three arguments. The first represents the name of the module and is required, the second is a configuration array and the third an array o variables (to be used to ease file paths). The last two are optional.

Configurations are as above.

### Module Json Example File:

[](#module-json-example-file)

{varname} - Represents a variable named "varname". These can be assigned via "var" keys as shown in the example below.

```
{
  "var": {
    "public": "{root}/public",
    "var": "{root}/var"
  },
  "join": [
    {
      "files":[
        "{var}/test1.css",
        "{var}/test2.css"
      ],
      "into": "{public}/test.min.css",
      "type": "css",
      "updated": 1558896289
    },
    {
      "var":{
        "public": "{root}/public/"
      },
      "files":[
        "{var}/test1.js",
        "{var}/test2.js",
        "{var}/test3.js"
      ],
      "into": "{public}/test.min.js",
      "type": "js",
      "updated": 1558896289
    }
  ]
}

```

###  Health Score

24

—

LowBetter than 32% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 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 ~30 days

Recently: every ~60 days

Total

9

Last Release

2298d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/0fc05d913ff59b984cc9cf5c8bb02ea8674c9711715da99949ba67c6eaf6c173?d=identicon)[AlexCCavaco](/maintainers/AlexCCavaco)

---

Top Contributors

[![AlexCCavaco](https://avatars.githubusercontent.com/u/37250206?v=4)](https://github.com/AlexCCavaco "AlexCCavaco (29 commits)")

### Embed Badge

![Health badge](/badges/alexccavaco-jomi/health.svg)

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

###  Alternatives

[flarum/core

Delightfully simple forum software.

211.3M1.9k](/packages/flarum-core)[grafite/forms

A remarkably magical form package for Laravel.

376.5k1](/packages/grafite-forms)

PHPackages © 2026

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