Joomla 3 → 4 → 5 → 6
Joomla Migration Reference
20 grouped guides covering 328 Joomla 3 APIs that break on 4 or 6. Search an error, or open a subsystem guide.
Press / to focus. Instant — nothing is uploaded.
Prefer a ZIP scan? Open the migration scanner
Grouped guides
Browse by subsystem
Each guide collects related catalog entries with replacements, hop labels, and code before/after.
- php-mysql
PHP & MySQL requirements
PHP version floors, removed PHP APIs, mysql_* drivers, and platform constants that break before Joomla itself loads.
18 entries
- jfactory-application
JFactory & application
JFactory getters and CMS application classes that move to Factory, the DI container, and client-aware Application APIs.
32 entries
- jtable-database
JTable & database
JTable subclasses, database drivers/queries, and execute/bind patterns that replace J3 query() and getDbo().
32 entries
- jrequest-input
JRequest & Input
JRequest and JInput request handling plus input/output filters that move to Application::getInput().
9 entries
- filesystem
Filesystem
JFile, JFolder, JPath, streams, and jimport filesystem helpers replaced by namespaced Filesystem classes.
5 entries
- html-helpers
HTML & JHtml helpers
JHtml / HTMLHelper class aliases, grid/sidebar helpers, and layout-based HTML utilities.
32 entries
- router-sef
Router & SEF
JRoute, JRouter, Uri, menus, pathways, and component routers for SEF URL building.
16 entries
- plugins-events
Plugins & events
JDispatcher, CMSPlugin, PluginHelper, and SubscriberInterface event registration.
6 entries
- components-mvc
Components, modules & MVC
Controllers, models, views, ComponentHelper, ModuleHelper, and MVC factory patterns for extension rewrites.
28 entries
- forms-fields
Forms & fields
JForm, FormField, FormRule, and form rendering APIs (renderField, control groups).
11 entries
- users-acl-session
Users, ACL & session
JUser, Access/ACL rules, authentication, and session APIs for identity and permissions.
20 entries
- language
Language
JLanguage, JText, multilanguage helpers, and language file / INI packaging changes.
9 entries
- media-assets
Media, assets & Web Asset Manager
addScript/addStyle, joomla.asset.json, Web Asset Manager, and media/image path helpers.
8 entries
- mail
Mail
JMail and mailer factory usage that moves to the container Mailer service.
5 entries
- updater-installer
Updater & installer
JInstaller, JUpdater, manifests, namespaces, and extension discovery/install scripts.
16 entries
- cli-console
CLI & console
JApplicationCli, JCli, daemon applications, and CLI input for console commands.
5 entries
- templates-layouts
Templates & layouts
Protostar/ISIS/Beez → Cassiopeia/Atum, JLayout helpers, Bootstrap CSS class migrations.
16 entries
- deprecated-js
Deprecated JavaScript (MooTools / jQuery)
behavior.framework, jQuery assumptions, MooTools captions/tooltips, and media/jui assets.
18 entries
- cache-http-feeds
Cache, HTTP & feeds
JCache storages, JHttp transports, feed parsers, and remote client helpers (FTP/LDAP).
24 entries
- misc
Miscellaneous APIs
Crypt, logging, dates, registry, profiler, and other APIs that do not fit a single subsystem.
18 entries
How to use it
Look up one error. Scan the whole package.
Joomla documentation tells you the framework moved. This page tells you what to type instead, which hop kills it, and when Infyways should take the rewrite.
Describe the break
Paste the fatal, or type what failed: template, plugin, SQL, jQuery.
Read the hop
Joomla 3→4 is the cliff (JRequest, MooTools). Joomla 5→6 is aliases dying.
Apply the replacement
Copy the new API. If there is no 1:1 swap, the entry says so.
Scan the rest
Run the Migration Scanner on the ZIP so you are not grepping one class at a time.
Too many hits to fix by hand? A professional Joomla upgrade runs every hop on staging, rebuilds the extensions that block the move, and ends in a fixed written quote.
Why Infyways
Built for people who have to fix it today
Core docs explain the framework. This reference maps the break to a replacement and a hop. If the rewrite is the job, Infyways already does Joomla 3 → 6 migrations.
Talk to an upgrade developerSearch in your words
Error dumps, class names, or “white screen after I turned off the compatibility plugin.” Instant, on-device filtering.
What you will see
Each issue lists the PHP/JS message, J3 vs J4 vs J6 status, and whether the BC plugin papers over it.
Before and after
Copy the Joomla 3 snippet and the namespaced replacement. Numbered steps — not a link into another manual page.
Then scan the ZIP
One error is a lookup. A whole LMS is a scan. Same Infyways migration path if you cannot finish it.
FAQ
How this reference works
Joomla’s own notes are written for core contributors. This page is written for the person staring at a white screen. Search in English, get the replacement, then scan the ZIP if you still cannot see every hit.
Answer
Can I paste a PHP error?
Yes. Paste Class "JFactory" not found, undefined function jimport, Incorrect DATETIME value, or $ is not defined. The search matches error text, class names, methods, templates, SQL, and symptoms like white screen or row-fluid.
Start a project
Have something
to build?
Tell us what you are building. You will hear back from an engineer within one business day.
Tell us about your project
Fill out the quick form and we'll reach out.