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

FeatureJoomla 6Joomla 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 minimumPHP 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

  1. Back up everything — files and database
  2. Audit and verify extension compatibility
  3. Test full upgrade on a staging clone first
  4. Run the Joomla updater: System → Update → Joomla
  5. Run database migration if prompted
  6. 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: