PHPackages                             gemvc/helper - 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. gemvc/helper

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

gemvc/helper
============

GEMVC helper utilities: ProjectHelper, CryptHelper, type checking, file/image helpers, and more.

v1.0.1(1mo ago)02↓87.5%MITPHPPHP ^8.2

Since Jun 6Pushed 1w agoCompare

[ Source](https://github.com/gemvc/helper)[ Packagist](https://packagist.org/packages/gemvc/helper)[ Docs](https://github.com/gemvc/helper)[ RSS](/packages/gemvc-helper/feed)WikiDiscussions main Synced 1w ago

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

gemvc/helper
============

[](#gemvchelper)

Helper utilities for the [GEMVC](https://gemvc.de) framework.

Composer package: `gemvc/helper`
GitHub repo: [gemvc/helper](https://github.com/gemvc/helper)

> **WARNING**
>
> This is an **internal GEMVC ecosystem package**. It is designed to be installed **with** `gemvc/library`, not on its own.
>
> **Do not** run `composer require gemvc/helper` in a generic PHP project expecting a standalone utility library — several classes depend on `gemvc/library` (HTTP layer, system page paths, etc.) and **may not work** without the full framework in `vendor/`.
>
> Supported install path: `composer require gemvc/library` (which pulls in `gemvc/helper` automatically).

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

[](#installation)

Installed automatically with the framework:

```
composer require gemvc/library
```

`gemvc/library` requires `gemvc/helper` — you do not need a separate install in normal apps.

Classes
-------

[](#classes)

ClassPurpose`ProjectHelper`Project root, `.env`, URLs, library paths`CryptHelper`Password hashing (Argon2i)`TypeChecker`HTTP input validation — see [supported types](#version-110--schema-validation-types) below`TypeHelper`Type utilities (GUID, timestamps, reflection helpers)`FileHelper`AES-256-CBC file encryption`ImageHelper`WebP conversion`JsonHelper`, `StringHelper`, `WebHelper`General utilities`ServerMonitorHelper`, `NetworkHelper`Monitoring metricsNamespace: `Gemvc\Helper\` (unchanged from monorepo layout).

Pairing with gemvc/library (no circular Composer dependency)
------------------------------------------------------------

[](#pairing-with-gemvclibrary-no-circular-composer-dependency)

- **`gemvc/library` requires `gemvc/helper`** — normal app install path
- **`gemvc/helper` does NOT require `gemvc/library`** — avoids `library → helper → library` cycle

Some classes (`ChatGptClient`, legacy `TraceKitToolkit`) use `Gemvc\Http\*` from `gemvc/library` at **runtime** in real apps. When both packages are in `vendor/`, autoload resolves the real HTTP classes from the library.

This package ships **HTTP stubs** under `stubs/` for standalone PHPUnit/PHPStan only (`autoload-dev`). They are not used when the package is installed as a dependency of `gemvc/library`.

Upgrading to 1.1.0
------------------

[](#upgrading-to-110)

See [RELEASE\_NOTES.md](RELEASE_NOTES.md#version-110--schema-validation-types).

**New `TypeChecker` types:** `decimal`, `decimal:P,S`, `hex`, `uuid`, `slug`, `positive_int`, `timestamp`, `jsonb` (alias of `json`).

```
TypeChecker::check('decimal', '19.99');
TypeChecker::check('uuid', '550e8400-e29b-41d4-a716-446655440000');
TypeChecker::check('positive_int', '42', ['min' => 1, 'max' => 100]);
```

Requires `gemvc/library` **5.10.0+** for DB mapping and Request getters. Helper 1.1.0 adds validation only.

Development
-----------

[](#development)

```
composer install
composer test
composer phpstan
```

Release workflow (v1)
---------------------

[](#release-workflow-v1)

1. Copy this folder into a clone of `github.com/gemvc/helper`
2. Tag and publish **1.0.0** on Packagist
3. Update `gemvc/library` to require `gemvc/helper: ^1.0` and remove `src/helper/`

v1.0 changes
------------

[](#v10-changes)

- Lift-and-shift from `gemvc/library/src/helper/` (14 files, same namespace)
- `ProjectHelper::getLibrarySystemPagesPath()` resolves `gemvc/library` via `InstalledVersions`

Future cleanup (TraceKit legacy removal, etc.) happens in this package only.

Push to GitHub (your workflow)
------------------------------

[](#push-to-github-your-workflow)

1. Create repo `github.com/gemvc/helper`
2. Copy **all contents** of this staging folder into the clone (repo root = package root; local folder name `gemvc-helper/` in the monorepo is only for staging)
3. `composer install` then `composer test` &amp;&amp; `composer phpstan`
4. Tag **v1.0.0** and publish to Packagist as `gemvc/helper`
5. In `gemvc/library` release **5.8.1**: add `"gemvc/helper": "^1.0"`, remove `src/helper/` and `Gemvc\Helper\` autoload, run `composer update` and full test suite

###  Health Score

39

—

LowBetter than 84% of packages

Maintenance95

Actively maintained with recent releases

Popularity2

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity47

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

Total

2

Last Release

48d ago

### Community

Maintainers

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

---

Top Contributors

[![gemvc](https://avatars.githubusercontent.com/u/211101824?v=4)](https://github.com/gemvc "gemvc (8 commits)")

---

Tags

phphelperutilitiesgemvc

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/gemvc-helper/health.svg)

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

###  Alternatives

[shopware/platform

The Shopware e-commerce core

3.4k1.5M3](/packages/shopware-platform)[kimai/kimai

Kimai - Time Tracking

4.8k9.0k1](/packages/kimai-kimai)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

585.6M600](/packages/shopware-core)[pocketmine/pocketmine-mp

A server software for Minecraft: Bedrock Edition written in PHP

3.5k78.3k91](/packages/pocketmine-pocketmine-mp)[vaimo/composer-patches

Applies a patch from a local or remote file to any package that is part of a given composer project. Patches can be defined both on project and on package level. Optional support for patch versioning, sequencing, custom patch applier configuration and patch command for testing/troubleshooting added patches.

3014.6M26](/packages/vaimo-composer-patches)[leantime/leantime

Open source project management system for non-project managers. Simple like Trello, powerful like Jira. Built with neurodiversity in mind.

10.2k4.0k](/packages/leantime-leantime)

PHPackages © 2026

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