- Compatible XF 2.x versions
- 2.2
- 2.3
- License
- MIT
What it does
XenForo already types most of its own runtime magic —xf-dev:generate-phpstorm-meta (shipped in 2.2 and 2.3) resolves the string-style call sites, entities ship full @property, and on 2.3 generics handle the ::class style and the finder chain. This tool is narrow on purpose: it fills the few gaps core leaves.What core doesn't type, either version:
- Board options —
\XF::options()->boardTitleismixed; this gives it a real type. - XFCP proxies —
class Foo extends XFCP_Foopoints at a runtime-built class with no file, flagged undefined; this declares them. - Cross-add-on columns — a column another add-on adds to an entity via XFCP isn't in that entity's shipped
@property; this reads the composed structure, so they're included.
finder('XF:User')->fetchOne() to the concrete entity), which 2.2 can't do without generics.If you're on 2.3 and none of those bite you, the stock dev tools already cover you.
What gets generated
- _ide_helper_options.php — one typed property per board option.
- _ide_helper_xfcp.php — declarations for the runtime
XFCP_*proxies. - _ide_helper.php — typed Finder/Collection stubs (mainly for 2.2) + entity
@propertyfrom the composed structure. - .phpstorm.meta.php — string-style call-site resolution (duplicates
xf-dev:generate-phpstorm-meta; skip with--targets options,xfcp,ide-helper).
Usage
Code:
xf-typegen extract /path/to/xenforo --out /path/to/xenforo/xf-typegen.json
xf-typegen generate -i /path/to/xenforo/xf-typegen.json
_ide_helper*.php files out of your PHP autoload — static analysis only.Source & downloads
Open source (MIT), prebuilt for Linux / macOS / Windows:https://github.com/wh1teend/xf-typegen