v1.2.33-beta2
Pre-release
Pre-release
XMF v1.2.33-beta2
Includes all changes from Phases 1–6 (PRs #124–#129).
Bug Fixes
- Fix
Request::getInt(),getFloat(),getBool()return types via explicit casts - Fix
Languageusing unqualifiedXOOPS_ROOT_PATHconstant; adddefined()guard - Fix
Migrate::getTargetDefinitions()checkingnullinstead offalseforYaml::read()failure - Fix
Tables::executeQueue()passing potentially non-string$ddltoexecSql() - Fix
Tables::fetch()collapsing query-failure and no-rows into same outcome - Fix
JsonWebToken::create()passingArrayObjecttoJWT::encode() - Fix
FilterInputhex entity decode producing null bytes on PHP 7+ - Fix
Metagen::html2text()discarding numeric entity callback result - Fix
IPAddress::normalize()passing false toinet_ntop() - Fix
Request::setVar()writing to literal'name'for ENV/SERVER
Security
- Harden
Key\FileStorage::save()withvar_export()instead of string interpolation - Add
allowed_classes => falsetounserialize()inSession::get() - Harden
Language::loadFile()withrealpath()and directory boundary validation - Add 2MB file size limit to
Yaml::read()andYaml::readWrapped() - Preserve
Jwt\JsonWebToken::decode()object|falseAPI contract - Remove dead
get_magic_quotes_gpc()calls fromRequest
Infrastructure
- Add PHPStan at level
maxwith ~546 baseline errors for incremental cleanup - Add PHPStan stub files for XOOPS framework classes, constants, and functions
- Add GitHub Actions CI: PHPStan, PHPCS, and code coverage jobs
- Simplify
.scrutinizer.ymlto analysis-only withdependency_pathsfor stubs - Add
composer baselinescript with backup/restore safety - Modernize README with badges, feature table, and component overview
- Add GitHub Copilot custom instructions and reusable XOOPS template
- Add
CHANGELOG.mdat repo root
Tests
- New unit tests for
Request::setVar(),FilterInputentities,Metagen::html2text(),IPAddress::normalize(),Yamlfile size limits
Full Changelog: v1.2.33-beta1...v1.2.33-beta2