XOOPS Support for PhpStorm: bring XOOPS conventions into your IDEWorking on XOOPS modules and core often means juggling the same conventions across many files: access guards, database result checks, query() vs exec(), language constants, Smarty delimiters, and templates registered in xoops_version.php. Those rules live in docs, code review, and memory — until something slips into production.
XOOPS Support is a new open-source
PhpStorm / IntelliJ plugin from the XOOPS project that puts those conventions where you already write code: the editor.
This first public release is 1.0.0 Alpha 1 — an early preview for developers who want faster feedback while they still shape the product.
What it doesCatch common mistakes as you typeInspections highlight issues that show up again and again in XOOPS code: missing XOOPS_ROOT_PATH guards, fetchArray / fetchRow without a solid isResultSet check, mutating SQL passed to query(), deprecated queryF / quoteString, wrong Smarty {…} delimiters, and templates listed in the module but missing on disk. Where it’s safe, Alt+Enter offers a quick fix so the fix matches the project’s style instead of a one-off patch.
Move faster with XOOPS-aware snippetsLive templates cover everyday patterns — root guards, fetch + result-set checks, headers, language constants, Criteria, Request helpers, and exec() — so less time is spent retyping the same boilerplate.
Discover language constants without hunting filesCompletion for _MI_, _AM_, _MD_, and related defines pulls from your module’s language/**/*.php files, with caching that stays in sync as those files change.
See the project at a glanceA dedicated tool window scans the tree for modules and high-confidence convention issues, with links into the files that need attention. Tools → XOOPS Support adds project info, refresh, and a New XOOPS Module scaffold for legacy or hybrid (PSR-4) layouts.
Fits modern PhpStormBuilt for PhpStorm 2024.3 and newer, including current 2026.x builds, and designed as a dynamic plugin so install and update often work without a full IDE restart.
Why it helps XOOPS developers*
“I forgot the result-set guard again” — Warning + optional fix before the PR
*
“Is this still queryF?” — Deprecated API called out in the editor
*
“Which constant was that?” — Completion from real language files
*
“Did we register this template?” — Missing registered templates flagged
*
“New module structure from scratch” — Scaffold for legacy or hybrid layout
*
“Review finds the same style nits” — Conventions enforced earlier, in the IDE
You still own architecture and domain logic. The plugin is there for XOOPS-shaped hygiene: the small, easy-to-miss rules that burn time in review and support.
Who it’s for• Module authors and maintainers on XOOPS 2.5 / 2.7 / 4.0
• Core and site customizers living in PhpStorm day to day
• Teams that want shared conventions without another checklist in the wiki
You do not need to change how you ship modules. Install the plugin, open a XOOPS tree, and use what helps.
Alpha means “try it, tell us”Alpha 1 is a public preview. Inspections use careful heuristics (not a full PHP control-flow engine), and behavior may evolve. That’s intentional: real modules and real feedback should drive the next cuts.
We care especially about:• False positives / false negatives on inspections
• Missing checks you still catch only in review
• Workflow friction (tool window, scaffold, settings)
DOWNLOAD• Repository: github.com/XOOPS/phpstorm-plugin (
https://github.com/XOOPS/phpstorm-plugin)
• Release: v1.0.0-alpha.1 — download the ZIP, then Install Plugin from Disk in PhpStorm
• License: GPL-2.0-or-later
Open a XOOPS project, enable the inspections under PHP → XOOPS, and try Tools → XOOPS Support.
If XOOPS is still written in the editor, the conventions that keep modules solid should live there too. XOOPS Support is a first step in that direction — and we’d like your modules to help shape what comes next.