Should you be planning a move to Joomla 7? What actually changes between Joomla 6 and Joomla 7, and what stays exactly the same? If you're managing a Joomla site or building extensions, these are the questions that matter — and this guide gives you straight answers.
Joomla 7 is a major release, which means backward compatibility is intentionally broken in specific areas. But "breaking changes" doesn't mean "everything is different." Much of what you know from Joomla 6 carries over directly. The key is understanding what changes, why it changes, and what you need to do about it.
The Fundamental Difference: Major vs Minor Releases
- Minor releases (6.1, 6.2...) add features while preserving backward compatibility
- Major releases (6→7) intentionally remove deprecated APIs and break backward compatibility in specific areas
Joomla 7 is the cleanup major release — everything deprecated during Joomla 4, 5, and 6 cycles is now gone for good.
What Stays the Same in Joomla 7
Core CMS Concepts ✅
- Articles, categories, menus, modules — identical
- User management and ACL
- Template system and overrides
- Media Manager, Smart Search, Workflow system
- Plugin system architecture
- Extension installation and management
- Multi-language support
- Atum admin template
Modern Extension Patterns ✅
If your extension already uses Joomla 4+ patterns — dependency injection, namespaced classes, typed event handlers, service providers — it will likely work on Joomla 7 with minimal or no changes.
Database Structure ✅
The core database schema remains compatible. The schema migrator handles any necessary table changes automatically during upgrade.
What Changes in Joomla 7
1. Legacy Static Classes Removed 🔴
JFactory, JHtml, JText, JRoute and the rest of the J-prefixed static class family are completely gone.
// Joomla 6 — still works (but deprecated)
$user = JFactory::getUser();
// Joomla 7 — fatal error
$user = JFactory::getUser();
// Joomla 7 — correct
$user = Factory::getApplication()->getIdentity();
2. Legacy MVC Base Classes Removed 🔴
JModelLegacy, JControllerLegacy, JViewLegacy are removed. Extensions must use the modern MVC base classes from Joomla 4+.
3. Plugin Event Method Signatures Changed 🟡
Old string-parameter plugin event signatures are removed. All plugins must use typed event objects.
4. jimport() Removed 🟡
PSR-4 autoloading makes jimport() completely unnecessary. Just use use statements.
5. PHP Version Minimum Raised 🟡
PHP 8.1+ required (exact minimum TBC). Extensions using PHP 7.x-only syntax need updating.
Side-by-Side Comparison
| Feature | Joomla 6 | Joomla 7 |
|---|---|---|
| JFactory static class | ⚠️ Deprecated | ❌ Removed |
| JHtml, JText, JRoute | ⚠️ Deprecated | ❌ Removed |
| Legacy MVC classes | ⚠️ Deprecated | ❌ Removed |
| jimport() | ⚠️ Deprecated | ❌ Removed |
| DI Container | ✅ Recommended | ✅ Required |
| Typed plugin events | ✅ Recommended | ✅ Required |
| Modern MVC (J4+ style) | ✅ Works | ✅ Works |
| Articles/categories/menus | ✅ Same | ✅ Same |
| Atum admin template | ✅ Included | ✅ Included |
| PHP minimum | PHP 8.0+ | PHP 8.1+ (TBC) |
Who Is Most Affected?
Extension Developers — Most Affected
Extensions built on Joomla 3.x patterns that were never fully modernized will break. The migration path is clear — DI container, modern MVC, typed events — but the work needs doing now.
Custom Template Developers — Mildly Affected
Templates using Joomla 4+ WebAssetManager are fine. Templates with old JHtml asset loading calls need updating.
Site Owners with Commercial Extensions — Depends on Developers
Well-maintained commercial extensions will ship Joomla 7-compatible versions. Extensions not updated in years are high-risk. Start auditing your extension list now.
Agencies — Plan Carefully
Build a Joomla 7 compatibility matrix for your typical extension stack. Test every client site on staging before touching production.
The Upgrade Path: Joomla 6 → Joomla 7
- Back up everything — files and database
- Audit and verify extension compatibility
- Test full upgrade on a staging clone first
- Run the Joomla updater: System → Update → Joomla
- Run database migration if prompted
- Verify everything on staging, then upgrade production
When Should You Upgrade?
- Now: Audit extensions, update deprecated code, test against
7.0-dev - On RC: Full staging environment testing
- On stable release: Upgrade with verified extension compatibility
- 30–60 days post-stable: For mission-critical sites, let first patch releases land first
Conclusion: Evolution, Not Revolution
The Joomla 6 to Joomla 7 transition is significant but manageable. Core CMS functionality is unchanged. What's changing is the legacy plumbing — static classes and old patterns that have been in the codebase since Joomla's early years.
Sites running modern, well-maintained extensions will upgrade smoothly. Sites carrying legacy extensions need planning and testing. Start now — you have time to do this right.
More Joomla 7 guides on thepixel.dev: