PHPackages                             xoops/xmf - 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. [Framework](/categories/framework)
4. /
5. xoops/xmf

ActiveLibrary[Framework](/categories/framework)

xoops/xmf
=========

XMF - XOOPS Module Framework

v1.3.0(3w ago)77.5k↓90.9%6[4 issues](https://github.com/XOOPS/xmf/issues)[1 PRs](https://github.com/XOOPS/xmf/pulls)2GPL-2.0-or-laterPHPPHP ^8.2CI passing

Since Feb 11Pushed 4d ago3 watchersCompare

[ Source](https://github.com/XOOPS/xmf)[ Packagist](https://packagist.org/packages/xoops/xmf)[ Docs](https://github.com/XOOPS/xmf)[ Fund](https://xoops.org/modules/donations/)[ GitHub Sponsors](https://github.com/sponsors/XOOPS)[ RSS](/packages/xoops-xmf/feed)WikiDiscussions master Synced 1w ago

READMEChangelog (10)Dependencies (15)Versions (69)Used By (2)

 [![XOOPS](https://camo.githubusercontent.com/14477be4afa6998238259f04a69daa6fb84a1552272f8fde75622536eb568961/68747470733a2f2f786f6f70732e6f72672f696d616765732f6c6f676f586f6f707350687038312e706e67)](https://camo.githubusercontent.com/14477be4afa6998238259f04a69daa6fb84a1552272f8fde75622536eb568961/68747470733a2f2f786f6f70732e6f72672f696d616765732f6c6f676f586f6f707350687038312e706e67)
 XMF — XOOPS Module Framework

======================================================================================================================================================================================================================================================================================================================================================================================================================================

[](#--------xmf--xoops-module-framework--)

 **The toolkit that makes XOOPS module development faster, safer, and more consistent.**

 [![CI Status](https://camo.githubusercontent.com/63ef7b2db283eef98edff9d785ab14905b894540bf299396c1f3fb5924e6801e/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f584f4f50532f786d662f63692e796d6c3f6272616e63683d6d6173746572266c6162656c3d4349266c6f676f3d676974687562)](https://github.com/XOOPS/xmf/actions) [![Scrutinizer](https://camo.githubusercontent.com/e2cfa55d32bfab97fcda2d3603dc12d61ec7205db075c36fa5364539da7c6af6/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f7175616c6974792f672f584f4f50532f786d662f6d61737465723f6c6f676f3d7363727574696e697a6572)](https://scrutinizer-ci.com/g/XOOPS/xmf/) [![Packagist Version](https://camo.githubusercontent.com/f75204d87097f48b80ae4eeaa4152c50b9011e2e92ece6ef85777d31048b265c/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f786f6f70732f786d663f6c6162656c3d737461626c65266c6f676f3d7061636b6167697374)](https://packagist.org/packages/xoops/xmf) [![Downloads](https://camo.githubusercontent.com/7f0599be45e1fb112400e5005dccc4b4f9132415aa7778ccdda2a1dedbb599d5/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f786f6f70732f786d663f6c6f676f3d7061636b616769737426636f6c6f723d626c7565)](https://packagist.org/packages/xoops/xmf) [![PHP Version](https://camo.githubusercontent.com/49089a6ca0464895e6b5fd58f787c743abe61b84df971ea026861dab39975b3c/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f786f6f70732f786d663f6c6f676f3d706870)](https://packagist.org/packages/xoops/xmf) [![License](https://camo.githubusercontent.com/cd781d0568c328bdea35f284d33e2b1e96675ef60910926c1dd75d5a4d46de66/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d47504c2d2d322e302d2d6f722d2d6c617465722d626c7565)](https://www.gnu.org/licenses/gpl-2.0.html)

---

Why XMF?
--------

[](#why-xmf)

Building XOOPS modules means solving the same problems over and over: filtering input, managing sessions, handling permissions, generating meta tags, working with databases. **XMF gives you battle-tested solutions for all of them** so you can focus on what makes your module unique.

What you getWhy it matters**Input &amp; Security**Request handling, input filtering, IP address validationStop writing your own sanitization — use proven, audited code**Database**Schema migrations, table management, bulk loadingEvolve your database safely across module versions**Authentication**JWT tokens, key management, secure storageAdd token-based auth without pulling in heavyweight packages**Module Helpers**Admin panels, permissions, sessions, cachingCommon module tasks reduced to one-liners**Content Tools**Meta tag generation, SEO titles, YAML config, search summariesImprove SEO and content handling with zero effort**Identifiers**ULID and UUID generationGenerate unique, sortable identifiers out of the box**Developer Tools**Debugging (Kint), YAML import/export, assertionsDebug and inspect with a single callQuick Start
-----------

[](#quick-start)

```
composer require xoops/xmf
```

```
use Xmf\Request;
use Xmf\FilterInput;
use Xmf\Metagen;

// Safe input handling
$id = Request::getInt('id', 0, 'GET');
$name = Request::getString('name', '', 'POST');

// Generate SEO-friendly meta tags
Metagen::generateMetaTags($title, $body);

// Generate a ULID
$ulid = \Xmf\Ulid::generate();
```

Components
----------

[](#components)

```
xmf/src/
  |
  |-- Request.php          HTTP request handling & input retrieval
  |-- FilterInput.php      Input sanitization & XSS prevention
  |-- IPAddress.php        IPv4/IPv6 validation & subnet checks
  |-- ProxyCheck.php       Proxy detection for real client IPs
  |
  |-- Database/
  |     |-- Tables.php     Schema definition & ALTER operations
  |     |-- Migrate.php    Module schema migrations
  |     +-- TableLoad.php  Bulk data import
  |
  |-- Jwt/
  |     |-- JsonWebToken   Create & decode signed JWT tokens
  |     |-- TokenFactory   Convenient token builder
  |     +-- TokenReader    Token verification & claim extraction
  |
  |-- Key/
  |     |-- Basic.php      Key pair generation
  |     |-- FileStorage    Persistent key storage (filesystem)
  |     +-- ArrayStorage   In-memory key storage (testing)
  |
  |-- Module/
  |     |-- Admin.php      Admin panel rendering & config display
  |     +-- Helper/
  |           |-- Permission   Group permission management
  |           |-- Session      Secure session read/write
  |           |-- Cache        Module-scoped caching
  |           +-- GenericHelper  Common helper utilities
  |
  |-- Metagen.php          Meta keywords, descriptions & SEO titles
  |-- Highlighter.php      Search term highlighting
  |-- StopWords.php        Keyword filtering (multi-language)
  |
  |-- Ulid.php             ULID generation (monotonic & standard)
  |-- Uuid.php             UUID v4 generation
  |-- Random.php           Cryptographically secure random bytes
  |
  |-- Yaml.php             YAML read/write with PHP-wrapped security
  |-- Language.php         Safe language file loading
  |-- Debug.php            Kint-powered variable inspection
  +-- Assert.php           Runtime assertion helpers

```

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

[](#requirements)

RequirementVersionPHP8.2+XOOPS2.5.x or 2.6.xComposerRequired### Key Dependencies

[](#key-dependencies)

- [`firebase/php-jwt`](https://github.com/firebase/php-jwt) — JWT encoding/decoding
- [`symfony/yaml`](https://github.com/symfony/yaml) — YAML parsing
- [`kint-php/kint`](https://github.com/kint-php/kint) — Debug output
- [`webmozart/assert`](https://github.com/webmozarts/assert) — Assertion library

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

[](#installation)

**Via Composer (recommended):**

```
composer require xoops/xmf
```

**As part of XOOPS:**

XMF is included in XOOPS 2.5.8+ as a core library. No separate installation needed.

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

[](#development)

```
# Install dependencies
composer install

# Run tests
composer test

# Static analysis
composer analyse

# Code style check
composer lint

# Auto-fix code style
composer fix

# Run all CI checks
composer ci

# Regenerate PHPStan baseline
composer baseline
```

Contributing
------------

[](#contributing)

Contributions are welcome! Please see our [Contributing Guide](.github/CONTRIBUTING.md) for details.

1. Fork the repository
2. Create a feature branch (`git checkout -b feature/my-feature`)
3. Make your changes and add tests
4. Run `composer ci` to verify
5. Submit a Pull Request

Links
-----

[](#links)

- [XOOPS Project](https://xoops.org)
- [XMF on Packagist](https://packagist.org/packages/xoops/xmf)
- [XMF on GitHub](https://github.com/XOOPS/xmf)
- [Issue Tracker](https://github.com/XOOPS/xmf/issues)
- [Changelog](CHANGELOG.md)

License
-------

[](#license)

XMF is licensed under the [GPL-2.0-or-later](docs/license.md).

Acknowledgments
---------------

[](#acknowledgments)

[ ![JetBrains Logo](https://camo.githubusercontent.com/3cf726e7cdadba47755b7f7ea4227945a92a2fa48aadf4a2573140ec6501c989/68747470733a2f2f7265736f75726365732e6a6574627261696e732e636f6d2f73746f726167652f70726f64756374732f636f6d70616e792f6272616e642f6c6f676f732f6a625f6265616d2e737667)](https://www.jetbrains.com/community/opensource/)Thank you to [JetBrains](https://www.jetbrains.com/community/opensource/) for supporting open-source development by providing free IDE licenses to this project.

---

 Made with ❤️ by the [XOOPS Project](https://github.com/XOOPS) community

###  Health Score

61

—

FairBetter than 99% of packages

Maintenance86

Actively maintained with recent releases

Popularity32

Limited adoption so far

Community20

Small or concentrated contributor base

Maturity90

Battle-tested with a long release history

 Bus Factor2

2 contributors hold 50%+ of commits

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

Recently: every ~23 days

Total

59

Last Release

27d ago

Major Versions

v0.4.1 → v1.0.0-RC2016-02-29

PHP version history (6 changes)v0.1.0PHP &gt;=5.3.7

v1.1.1PHP &gt;=5.3.9

v1.2.28PHP &gt;=5.6.0

v1.2.30PHP &gt;=7.4.0

v1.2.33-beta2PHP ^7.4 || ^8.0

v1.3.0-beta1PHP ^8.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/7eb0c56896d2405e44608ffb77c1411e4a18927be440b28275f7e0cb075ea9d6?d=identicon)[geekwright](/maintainers/geekwright)

---

Top Contributors

[![geekwright](https://avatars.githubusercontent.com/u/3181636?v=4)](https://github.com/geekwright "geekwright (256 commits)")[![mambax7](https://avatars.githubusercontent.com/u/613686?v=4)](https://github.com/mambax7 "mambax7 (253 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (15 commits)")[![ggoffy](https://avatars.githubusercontent.com/u/7547661?v=4)](https://github.com/ggoffy "ggoffy (1 commits)")

---

Tags

frameworkmodulexoopsxmf

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/xoops-xmf/health.svg)

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

###  Alternatives

[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.4M195](/packages/sulu-sulu)[typo3/cms

TYPO3 CMS is a free open source Content Management Framework initially created by Kasper Skaarhoj and licensed under GNU/GPL.

1.2k1.9M122](/packages/typo3-cms)[shopware/platform

The Shopware e-commerce core

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

The PHP framework that gets out of your way.

2.2k31.1k11](/packages/tempest-framework)[typo3/cms-core

TYPO3 CMS Core

3312.9M4.7k](/packages/typo3-cms-core)[rcsofttech/audit-trail-bundle

Enterprise-grade, high-performance Symfony audit trail bundle. Automatically track Doctrine entity changes with split-phase architecture, multiple transports (HTTP, Queue, Doctrine), and sensitive data masking.

1155.2k](/packages/rcsofttech-audit-trail-bundle)

PHPackages © 2026

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