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 4w ago

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 30% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity51

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

2392d 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

[pimcore/pimcore

Content &amp; Product Management Framework (CMS/PIM/E-Commerce)

3.8k3.9M534](/packages/pimcore-pimcore)[appwrite/sdk-generator

SDK generator for Appwrite APIs across multiple programming languages and platforms

326218.3k4](/packages/appwrite-sdk-generator)[moodle/moodle

Moodle - the world's open source learning platform

7.3k90.1k128](/packages/moodle-moodle)[elgg/elgg

Elgg is an award-winning social networking engine, delivering the building blocks that enable businesses, schools, universities and associations to create their own fully-featured social networks and applications.

1.7k17.3k100](/packages/elgg-elgg)[flarum/core

Delightfully simple forum software.

211.5M2.5k](/packages/flarum-core)[contao/core-bundle

Contao Open Source CMS

1301.7M3.0k](/packages/contao-core-bundle)

PHPackages © 2026

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