xoops / moduletools
Core-bundled reusable services and compatibility module helpers for XOOPS 2.8.0+ modules
Requires
- php: ^8.4
- ext-ctype: *
- ext-mbstring: *
- ext-tokenizer: *
- symfony/yaml: ^6.0 || ^7.0
- xoops/helpers: ^1.0
- xoops/xmf: ^1.3
Requires (Dev)
- nikic/php-parser: ^5.0
- phpstan/phpstan: ^2.0
- phpunit/phpunit: ^11.5
- rector/rector: ^2.0
- smarty/smarty: ^5.0
- squizlabs/php_codesniffer: ^3.10 || ^4.0
- xoops/rector-xoops: ^1.0@alpha
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-09-21 23:38:42 UTC
README
ModuleTools is the XOOPS Core-bundled successor to the mTools helper-host module. It
provides reusable services under Xoops\ModuleTools\ without requiring an
installed or active module.
The package registers lazy aliases for the stable XoopsModules\Mtools\* API,
allowing existing modules to run on XOOPS 2.8 without an mTools database row.
The separately distributed mTools module remains the provider for XOOPS 2.7.x.
Experimental mTools\Lab\*, module administration pages, theme assets, and the
legacy mtools_setup table are intentionally not part of this library.
Documentation
- Getting started — using the library from a module
- Migrating a module — replacing copied
Commonclasses / the mTools module - Compatibility policy — what stays, for how long
Requirements
- PHP 8.4+, XOOPS 2.8.0+ (
xoops/xmf^1.3,xoops/helpers^1.0). Smarty is Core's; the library ships no templates and only drivesXoopsTplfrom PHP.
Development
composer install composer qa # phpcs → phpstan (level 6, generated XOOPS stubs) → rector dry-run → package checks → phpunit composer test # package checks + phpunit only
The consumer-module tests (*ConsumerTest) and the XMF 1.5 pagination parity test skip
automatically unless the package sits inside a XOOPS tree (xoops_lib/vendor/xoops/moduletools).
stubs/xoops-core.stub is generated from a real XOOPS 2.8 core so PHPStan can analyse the
library standalone; regenerate it when the core API the library touches changes.