Breaking Changes
Last updated Oct 11th, 2026 | Page history | Improve this page | Report an issue
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$194 per month—let's make that $500!
Learn moreMost important breaking changes¶
- Minimum supported PHP version was increased to 7.2.5 in 3.0, and again to 8.1 in 3.2
- It’s no longer possible to use a custom core folder/path
- sqlsrv support has been removed
- A large number of (previously unnamespaced) classes have been renamed and moved, including processors and model classes.
- Checklist for Extra authors updating 2.x packages
- xPDO 3 ships via Composer with PSR-4 models; migrate custom packages
- All processors have been renamed, including base processors
modActionandmodAccessActionhave been removed (modActionDomand friends remain)- modRestClient has been removed #15781 and has been replaced with a new PSR-7/17/18 HTTP service
Legacy functionality cleanup¶
-
modResource->contentTypefield has been removed. Use thecontent_typeinteger field (FK tomodContentType) instead. #14057Before (legacy / broken in 3.0):
$mime = $resource->get('contentType'); // removed fieldAfter:
$contentTypeId = $resource->get('content_type'); $contentType = $resource->getOne('ContentType'); // or $modx->getObject(modContentType::class, $contentTypeId) $mime = $contentType ? $contentType->get('mime_type') : ''; -
modParser095,modTranslate095, andmodTranslatorhave been removed. They only helped migrate older 0.9.x/1.x tag syntax into Revolution. Do not call them for legacy migrations anymore: convert templates to standard[[...]]tags manually or with your own tooling, then rely on the normalmodParser. #14133 -
Flash-based copy-to-clipboard in ExtJS has been removed. Manager copy actions use the browser clipboard APIs instead. #13697
-
/manager/min/directory has been removed; was unused since 2.5. #12778, #13194, #14416 -
Unused ExtJS grids have been removed: assets/modext/widgets/resource/modx.grid.resource.security.js, assets/modext/widgets/security/modx.grid.role.user.js, assets/modext/workspace/lexicon/language.grid.js, assets/modext/workspace/lexicon/lexicon.topic.grid.js #14895
-
@EVALbinding has been removed from TVs #13865
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$194 per month—let's make that $500!
Learn more










