- Совместимость с XF
- 2.3.x
- Краткое описание
- XenForo type generator tool fills gaps left by core, types board options, XFCP proxies, and cross-addon columns. Use xf-typegen with --out to generate PHPStorm metadata JSON files for better IDE support. Open source at https://github.com/wh1teend/xf-typegen.
XenForo уже сам генерирует большую часть своего логического кода — xf-dev:generate-phpstorm-meta (выпущено в 2.2 и 2.3) устраняет синтаксические места для вызова строк, аentities приходят с полной версией@property, и на 2.3 генерики обрабатывают стиль ::class и цепочку Finder. Этот инструмент направленный: он заполняет те места, где Core оставляет пробелы.
Что Core не типизирует либо в любом из версий:
- Параметры доски — \XF:😱ptions()->boardTitle имеет реальный тип.
- Прокси XFCP — класс Foo extends XFCP_Foo указывает на выстроенный на выполнении класс, без файла и помечается как неопределен; это объявляет их.
- Кросс-аддикторные колонки — колонка, добавленная другим аддоном к сущности через XFCP, не входит в то, что поставляется с этой сущностью.@property; это читает структуру, поэтому они включены.
На 2.2 только, также типизирует цепочку поиска (finder('XF:User')->fetchOne() к конкретной сущности), что 2.2 не может сделать без генериков.
Если вы на версии 2.3 и ни одна из этих вещей вас не трогает, стандартные инструменты разработчика уже покрывают вас.
- _ide_helper_options.php — одно типизированное свойство для каждой опции доски.
- _ide_helper_xfcp.php — объявления для локальных протоколов XFCP_*.
- _ide_helper.php — стабилизаторы Finder/Collection типизированные (основательно для 2.2) + сущность@propertyod struktury kompozycji.[
- .phpstorm.meta.php— стилизованный стиль вызова точки селектора (дублирует xf-dev:generate-phpstorm-meta; пропускать с опциями --targets options,xfcp,ide-helper).
Код:
xf-typegen extract /path/to/xenforo --out /path/to/xenforo/xf-typegen.json
xf-typegen generate -i /path/to/xenforo/xf-typegen.json
Keep the _ide_helper*.php files out of your PHP autoload — static analysis only.