Joomla Components, modules & MVC changes: Joomla 3 → 4, 5 and 6
28 issues in this guide
Components and modules share the MVC rename map. This guide groups 28 entries: FOFModel / FOFTable, JCategories, JCategoryNode, JComponentHelper, JControllerAdmin, JControllerForm, JControllerLegacy, JHelper, JHelperContent, JHelperTags, and 18 more. The replacement pattern is the Joomla\CMS\MVC\* tree — BaseController, AdminController, FormController, ListModel, AdminModel, FormModel, HtmlView — plus ComponentHelper and ModuleHelper. getInstance() string factories give way to MVCFactory / $this->getModel(). assignRef disappears; assign public view properties. setError / getError become exceptions. FOF2 is not in Joomla 4 core; upgrade the library or rewrite. Hop mix: 4 at Joomla 3 → 4; 24 at Joomla 5 → 6. Work one MVC layer at a time on staging: controllers and models first, then views and helpers, using each entry's before/after as the checklist from the catalog. Catalog replacements in this guide include FOFModel / FOFTable → FOF 3 / native Joomla MVC; JCategories → Joomla\CMS\Categories\Categories; JCategoryNode → Joomla\CMS\Categories\CategoryNode; JComponentHelper → Joomla\CMS\Component\ComponentHelper. Open each h2 anchor for the full before/after, fix list, and error strings shipped in the reference data.
FOF2-001
FOFModel / FOFTable
FOF 2.x in core
Framework-on-Framework 2 shipped with some J3 stacks and is not in Joomla 4 core.
FOFModel / FOFTable → FOF 3 / native Joomla MVC
Dies at Joomla 3 → 4What you will see
- Class "FOFModel" not found
- Class "FOFTable" not found
Symptoms people search
Akeeba/FOF component 500 · FOFModel
Replace this code
Swap FOFModel / FOFTable for FOF 3 / native Joomla MVC.
Joomla 3
Remove or stop calling this
class LmsModelCourses extends FOFModel {}Joomla 4 / 6
Use this instead
Port to FOF 3 or to namespaced ListModel/AdminModel. FOF 2 is not in Joomla 4.How to fix it
- 1Upgrade the FOF library to a J4+ release or rewrite MVC.
Also known as
FOF · FOFModel · FOFTable · FOFForm
There is no 1:1 swap for this one. The architecture changed. If you cannot rewrite it, Infyways can.
JCATEGORIES-CLASS-001
JCategories
JCategories class name
JCategories is a Joomla 3 global class. Joomla 4 still has an alias. Joomla 5 needs the Behaviour – Backward Compatibility plugin. Native Joomla 6 does not load that alias — you get Class "JCategories" not found.
JCategories → Joomla\CMS\Categories\Categories
Dies at Joomla 5 → 6What you will see
- Class "JCategories" not found
- Class 'JCategories' not found
- Failed to open stream: JCategories
Symptoms people search
white screen after disabling compatibility plugin · class not found on Joomla 6 · works on Joomla 5 until I turn off backward compatibility
Replace this code
Swap JCategories for Joomla\CMS\Categories\Categories.
Joomla 3
Remove or stop calling this
JCategories::getInstance();
// or new JCategories()Joomla 4 / 6
Use this instead
use Joomla\CMS\Categories\Categories;
// Call the namespaced class. Do not keep the J prefix.How to fix it
- 1Add a use statement for Joomla\CMS\Categories\Categories.
- 2Replace every JCategories with the short class name from that use line.
- 3Disable Behaviour – Backward Compatibility on a Joomla 5 staging site. If it fatals, this class is still in the code.
Also known as
JCategories · Joomla\CMS\Categories\Categories · class alias · J prefix
JCATEGORYNODE-CLASS-001
JCategoryNode
JCategoryNode class name
JCategoryNode is a Joomla 3 global class. Joomla 4 still has an alias. Joomla 5 needs the Behaviour – Backward Compatibility plugin. Native Joomla 6 does not load that alias — you get Class "JCategoryNode" not found.
JCategoryNode → Joomla\CMS\Categories\CategoryNode
Dies at Joomla 5 → 6What you will see
- Class "JCategoryNode" not found
- Class 'JCategoryNode' not found
- Failed to open stream: JCategoryNode
Symptoms people search
white screen after disabling compatibility plugin · class not found on Joomla 6 · works on Joomla 5 until I turn off backward compatibility
Replace this code
Swap JCategoryNode for Joomla\CMS\Categories\CategoryNode.
Joomla 3
Remove or stop calling this
JCategoryNode::getInstance();
// or new JCategoryNode()Joomla 4 / 6
Use this instead
use Joomla\CMS\Categories\CategoryNode;
// Call the namespaced class. Do not keep the J prefix.How to fix it
- 1Add a use statement for Joomla\CMS\Categories\CategoryNode.
- 2Replace every JCategoryNode with the short class name from that use line.
- 3Disable Behaviour – Backward Compatibility on a Joomla 5 staging site. If it fatals, this class is still in the code.
Also known as
JCategoryNode · Joomla\CMS\Categories\CategoryNode · class alias · J prefix
JCOMPONENTHELPER-CLASS-001
JComponentHelper
JComponentHelper class name
JComponentHelper is a Joomla 3 global class. Joomla 4 still has an alias. Joomla 5 needs the Behaviour – Backward Compatibility plugin. Native Joomla 6 does not load that alias — you get Class "JComponentHelper" not found.
JComponentHelper → Joomla\CMS\Component\ComponentHelper
Dies at Joomla 5 → 6What you will see
- Class "JComponentHelper" not found
- Class 'JComponentHelper' not found
- Failed to open stream: JComponentHelper
Symptoms people search
white screen after disabling compatibility plugin · class not found on Joomla 6 · works on Joomla 5 until I turn off backward compatibility
Replace this code
Swap JComponentHelper for Joomla\CMS\Component\ComponentHelper.
Joomla 3
Remove or stop calling this
JComponentHelper::getInstance();
// or new JComponentHelper()Joomla 4 / 6
Use this instead
use Joomla\CMS\Component\ComponentHelper;
// Call the namespaced class. Do not keep the J prefix.How to fix it
- 1Add a use statement for Joomla\CMS\Component\ComponentHelper.
- 2Replace every JComponentHelper with the short class name from that use line.
- 3Disable Behaviour – Backward Compatibility on a Joomla 5 staging site. If it fatals, this class is still in the code.
Also known as
JComponentHelper · Joomla\CMS\Component\ComponentHelper · class alias · J prefix
JCONTROLLERADMIN-CLASS-001
JControllerAdmin
JControllerAdmin class name
JControllerAdmin is a Joomla 3 global class. Joomla 4 still has an alias. Joomla 5 needs the Behaviour – Backward Compatibility plugin. Native Joomla 6 does not load that alias — you get Class "JControllerAdmin" not found.
JControllerAdmin → Joomla\CMS\MVC\Controller\AdminController
Dies at Joomla 5 → 6What you will see
- Class "JControllerAdmin" not found
- Class 'JControllerAdmin' not found
- Failed to open stream: JControllerAdmin
Symptoms people search
white screen after disabling compatibility plugin · class not found on Joomla 6 · works on Joomla 5 until I turn off backward compatibility
Replace this code
Swap JControllerAdmin for Joomla\CMS\MVC\Controller\AdminController.
Joomla 3
Remove or stop calling this
JControllerAdmin::getInstance();
// or new JControllerAdmin()Joomla 4 / 6
Use this instead
use Joomla\CMS\MVC\Controller\AdminController;
// Call the namespaced class. Do not keep the J prefix.How to fix it
- 1Add a use statement for Joomla\CMS\MVC\Controller\AdminController.
- 2Replace every JControllerAdmin with the short class name from that use line.
- 3Disable Behaviour – Backward Compatibility on a Joomla 5 staging site. If it fatals, this class is still in the code.
Also known as
JControllerAdmin · Joomla\CMS\MVC\Controller\AdminController · class alias · J prefix
JCONTROLLERFORM-CLASS-001
JControllerForm
JControllerForm class name
JControllerForm is a Joomla 3 global class. Joomla 4 still has an alias. Joomla 5 needs the Behaviour – Backward Compatibility plugin. Native Joomla 6 does not load that alias — you get Class "JControllerForm" not found.
JControllerForm → Joomla\CMS\MVC\Controller\FormController
Dies at Joomla 5 → 6What you will see
- Class "JControllerForm" not found
- Class 'JControllerForm' not found
- Failed to open stream: JControllerForm
Symptoms people search
white screen after disabling compatibility plugin · class not found on Joomla 6 · works on Joomla 5 until I turn off backward compatibility
Replace this code
Swap JControllerForm for Joomla\CMS\MVC\Controller\FormController.
Joomla 3
Remove or stop calling this
JControllerForm::getInstance();
// or new JControllerForm()Joomla 4 / 6
Use this instead
use Joomla\CMS\MVC\Controller\FormController;
// Call the namespaced class. Do not keep the J prefix.How to fix it
- 1Add a use statement for Joomla\CMS\MVC\Controller\FormController.
- 2Replace every JControllerForm with the short class name from that use line.
- 3Disable Behaviour – Backward Compatibility on a Joomla 5 staging site. If it fatals, this class is still in the code.
Also known as
JControllerForm · Joomla\CMS\MVC\Controller\FormController · class alias · J prefix
JCONTROLLERLEGACY-CLASS-001
JControllerLegacy
JControllerLegacy class name
JControllerLegacy is a Joomla 3 global class. Joomla 4 still has an alias. Joomla 5 needs the Behaviour – Backward Compatibility plugin. Native Joomla 6 does not load that alias — you get Class "JControllerLegacy" not found.
JControllerLegacy → Joomla\CMS\MVC\Controller\BaseController
Dies at Joomla 5 → 6What you will see
- Class "JControllerLegacy" not found
- Class 'JControllerLegacy' not found
- Failed to open stream: JControllerLegacy
Symptoms people search
white screen after disabling compatibility plugin · class not found on Joomla 6 · works on Joomla 5 until I turn off backward compatibility
Replace this code
Swap JControllerLegacy for Joomla\CMS\MVC\Controller\BaseController.
Joomla 3
Remove or stop calling this
JControllerLegacy::getInstance();
// or new JControllerLegacy()Joomla 4 / 6
Use this instead
use Joomla\CMS\MVC\Controller\BaseController;
// Call the namespaced class. Do not keep the J prefix.How to fix it
- 1Add a use statement for Joomla\CMS\MVC\Controller\BaseController.
- 2Replace every JControllerLegacy with the short class name from that use line.
- 3Disable Behaviour – Backward Compatibility on a Joomla 5 staging site. If it fatals, this class is still in the code.
Also known as
JControllerLegacy · Joomla\CMS\MVC\Controller\BaseController · class alias · J prefix
JHELPER-CLASS-001
JHelper
JHelper class name
JHelper is a Joomla 3 global class. Joomla 4 still has an alias. Joomla 5 needs the Behaviour – Backward Compatibility plugin. Native Joomla 6 does not load that alias — you get Class "JHelper" not found.
JHelper → Joomla\CMS\Helper\CMSHelper
Dies at Joomla 5 → 6What you will see
- Class "JHelper" not found
- Class 'JHelper' not found
- Failed to open stream: JHelper
Symptoms people search
white screen after disabling compatibility plugin · class not found on Joomla 6 · works on Joomla 5 until I turn off backward compatibility
Replace this code
Swap JHelper for Joomla\CMS\Helper\CMSHelper.
Joomla 3
Remove or stop calling this
JHelper::getInstance();
// or new JHelper()Joomla 4 / 6
Use this instead
use Joomla\CMS\Helper\CMSHelper;
// Call the namespaced class. Do not keep the J prefix.How to fix it
- 1Add a use statement for Joomla\CMS\Helper\CMSHelper.
- 2Replace every JHelper with the short class name from that use line.
- 3Disable Behaviour – Backward Compatibility on a Joomla 5 staging site. If it fatals, this class is still in the code.
Also known as
JHelper · Joomla\CMS\Helper\CMSHelper · class alias · J prefix
JHELPERCONTENT-CLASS-001
JHelperContent
JHelperContent class name
JHelperContent is a Joomla 3 global class. Joomla 4 still has an alias. Joomla 5 needs the Behaviour – Backward Compatibility plugin. Native Joomla 6 does not load that alias — you get Class "JHelperContent" not found.
JHelperContent → Joomla\CMS\Helper\ContentHelper
Dies at Joomla 5 → 6What you will see
- Class "JHelperContent" not found
- Class 'JHelperContent' not found
- Failed to open stream: JHelperContent
Symptoms people search
white screen after disabling compatibility plugin · class not found on Joomla 6 · works on Joomla 5 until I turn off backward compatibility
Replace this code
Swap JHelperContent for Joomla\CMS\Helper\ContentHelper.
Joomla 3
Remove or stop calling this
JHelperContent::getInstance();
// or new JHelperContent()Joomla 4 / 6
Use this instead
use Joomla\CMS\Helper\ContentHelper;
// Call the namespaced class. Do not keep the J prefix.How to fix it
- 1Add a use statement for Joomla\CMS\Helper\ContentHelper.
- 2Replace every JHelperContent with the short class name from that use line.
- 3Disable Behaviour – Backward Compatibility on a Joomla 5 staging site. If it fatals, this class is still in the code.
Also known as
JHelperContent · Joomla\CMS\Helper\ContentHelper · class alias · J prefix
JMODELADMIN-CLASS-001
JModelAdmin
JModelAdmin class name
JModelAdmin is a Joomla 3 global class. Joomla 4 still has an alias. Joomla 5 needs the Behaviour – Backward Compatibility plugin. Native Joomla 6 does not load that alias — you get Class "JModelAdmin" not found.
JModelAdmin → Joomla\CMS\MVC\Model\AdminModel
Dies at Joomla 5 → 6What you will see
- Class "JModelAdmin" not found
- Class 'JModelAdmin' not found
- Failed to open stream: JModelAdmin
Symptoms people search
white screen after disabling compatibility plugin · class not found on Joomla 6 · works on Joomla 5 until I turn off backward compatibility
Replace this code
Swap JModelAdmin for Joomla\CMS\MVC\Model\AdminModel.
Joomla 3
Remove or stop calling this
JModelAdmin::getInstance();
// or new JModelAdmin()Joomla 4 / 6
Use this instead
use Joomla\CMS\MVC\Model\AdminModel;
// Call the namespaced class. Do not keep the J prefix.How to fix it
- 1Add a use statement for Joomla\CMS\MVC\Model\AdminModel.
- 2Replace every JModelAdmin with the short class name from that use line.
- 3Disable Behaviour – Backward Compatibility on a Joomla 5 staging site. If it fatals, this class is still in the code.
Also known as
JModelAdmin · Joomla\CMS\MVC\Model\AdminModel · class alias · J prefix
JMODELFORM-CLASS-001
JModelForm
JModelForm class name
JModelForm is a Joomla 3 global class. Joomla 4 still has an alias. Joomla 5 needs the Behaviour – Backward Compatibility plugin. Native Joomla 6 does not load that alias — you get Class "JModelForm" not found.
JModelForm → Joomla\CMS\MVC\Model\FormModel
Dies at Joomla 5 → 6What you will see
- Class "JModelForm" not found
- Class 'JModelForm' not found
- Failed to open stream: JModelForm
Symptoms people search
white screen after disabling compatibility plugin · class not found on Joomla 6 · works on Joomla 5 until I turn off backward compatibility
Replace this code
Swap JModelForm for Joomla\CMS\MVC\Model\FormModel.
Joomla 3
Remove or stop calling this
JModelForm::getInstance();
// or new JModelForm()Joomla 4 / 6
Use this instead
use Joomla\CMS\MVC\Model\FormModel;
// Call the namespaced class. Do not keep the J prefix.How to fix it
- 1Add a use statement for Joomla\CMS\MVC\Model\FormModel.
- 2Replace every JModelForm with the short class name from that use line.
- 3Disable Behaviour – Backward Compatibility on a Joomla 5 staging site. If it fatals, this class is still in the code.
Also known as
JModelForm · Joomla\CMS\MVC\Model\FormModel · class alias · J prefix
JMODELITEM-CLASS-001
JModelItem
JModelItem class name
JModelItem is a Joomla 3 global class. Joomla 4 still has an alias. Joomla 5 needs the Behaviour – Backward Compatibility plugin. Native Joomla 6 does not load that alias — you get Class "JModelItem" not found.
JModelItem → Joomla\CMS\MVC\Model\ItemModel
Dies at Joomla 5 → 6What you will see
- Class "JModelItem" not found
- Class 'JModelItem' not found
- Failed to open stream: JModelItem
Symptoms people search
white screen after disabling compatibility plugin · class not found on Joomla 6 · works on Joomla 5 until I turn off backward compatibility
Replace this code
Swap JModelItem for Joomla\CMS\MVC\Model\ItemModel.
Joomla 3
Remove or stop calling this
JModelItem::getInstance();
// or new JModelItem()Joomla 4 / 6
Use this instead
use Joomla\CMS\MVC\Model\ItemModel;
// Call the namespaced class. Do not keep the J prefix.How to fix it
- 1Add a use statement for Joomla\CMS\MVC\Model\ItemModel.
- 2Replace every JModelItem with the short class name from that use line.
- 3Disable Behaviour – Backward Compatibility on a Joomla 5 staging site. If it fatals, this class is still in the code.
Also known as
JModelItem · Joomla\CMS\MVC\Model\ItemModel · class alias · J prefix
JMODELLEGACY-CLASS-001
JModelLegacy
JModelLegacy class name
JModelLegacy is a Joomla 3 global class. Joomla 4 still has an alias. Joomla 5 needs the Behaviour – Backward Compatibility plugin. Native Joomla 6 does not load that alias — you get Class "JModelLegacy" not found.
JModelLegacy → Joomla\CMS\MVC\Model\BaseDatabaseModel
Dies at Joomla 5 → 6What you will see
- Class "JModelLegacy" not found
- Class 'JModelLegacy' not found
- Failed to open stream: JModelLegacy
Symptoms people search
white screen after disabling compatibility plugin · class not found on Joomla 6 · works on Joomla 5 until I turn off backward compatibility
Replace this code
Swap JModelLegacy for Joomla\CMS\MVC\Model\BaseDatabaseModel.
Joomla 3
Remove or stop calling this
JModelLegacy::getInstance();
// or new JModelLegacy()Joomla 4 / 6
Use this instead
use Joomla\CMS\MVC\Model\BaseDatabaseModel;
// Call the namespaced class. Do not keep the J prefix.How to fix it
- 1Add a use statement for Joomla\CMS\MVC\Model\BaseDatabaseModel.
- 2Replace every JModelLegacy with the short class name from that use line.
- 3Disable Behaviour – Backward Compatibility on a Joomla 5 staging site. If it fatals, this class is still in the code.
Also known as
JModelLegacy · Joomla\CMS\MVC\Model\BaseDatabaseModel · class alias · J prefix
JMODELLIST-CLASS-001
JModelList
JModelList class name
JModelList is a Joomla 3 global class. Joomla 4 still has an alias. Joomla 5 needs the Behaviour – Backward Compatibility plugin. Native Joomla 6 does not load that alias — you get Class "JModelList" not found.
JModelList → Joomla\CMS\MVC\Model\ListModel
Dies at Joomla 5 → 6What you will see
- Class "JModelList" not found
- Class 'JModelList' not found
- Failed to open stream: JModelList
Symptoms people search
white screen after disabling compatibility plugin · class not found on Joomla 6 · works on Joomla 5 until I turn off backward compatibility
Replace this code
Swap JModelList for Joomla\CMS\MVC\Model\ListModel.
Joomla 3
Remove or stop calling this
JModelList::getInstance();
// or new JModelList()Joomla 4 / 6
Use this instead
use Joomla\CMS\MVC\Model\ListModel;
// Call the namespaced class. Do not keep the J prefix.How to fix it
- 1Add a use statement for Joomla\CMS\MVC\Model\ListModel.
- 2Replace every JModelList with the short class name from that use line.
- 3Disable Behaviour – Backward Compatibility on a Joomla 5 staging site. If it fatals, this class is still in the code.
Also known as
JModelList · Joomla\CMS\MVC\Model\ListModel · class alias · J prefix
JMODULEHELPER-CLASS-001
JModuleHelper
JModuleHelper class name
JModuleHelper is a Joomla 3 global class. Joomla 4 still has an alias. Joomla 5 needs the Behaviour – Backward Compatibility plugin. Native Joomla 6 does not load that alias — you get Class "JModuleHelper" not found.
JModuleHelper → Joomla\CMS\Helper\ModuleHelper
Dies at Joomla 5 → 6What you will see
- Class "JModuleHelper" not found
- Class 'JModuleHelper' not found
- Failed to open stream: JModuleHelper
Symptoms people search
white screen after disabling compatibility plugin · class not found on Joomla 6 · works on Joomla 5 until I turn off backward compatibility
Replace this code
Swap JModuleHelper for Joomla\CMS\Helper\ModuleHelper.
Joomla 3
Remove or stop calling this
JModuleHelper::getInstance();
// or new JModuleHelper()Joomla 4 / 6
Use this instead
use Joomla\CMS\Helper\ModuleHelper;
// Call the namespaced class. Do not keep the J prefix.How to fix it
- 1Add a use statement for Joomla\CMS\Helper\ModuleHelper.
- 2Replace every JModuleHelper with the short class name from that use line.
- 3Disable Behaviour – Backward Compatibility on a Joomla 5 staging site. If it fatals, this class is still in the code.
Also known as
JModuleHelper · Joomla\CMS\Helper\ModuleHelper · class alias · J prefix
JPAGINATION-CLASS-001
JPagination
JPagination class name
JPagination is a Joomla 3 global class. Joomla 4 still has an alias. Joomla 5 needs the Behaviour – Backward Compatibility plugin. Native Joomla 6 does not load that alias — you get Class "JPagination" not found.
JPagination → Joomla\CMS\Pagination\Pagination
Dies at Joomla 5 → 6What you will see
- Class "JPagination" not found
- Class 'JPagination' not found
- Failed to open stream: JPagination
Symptoms people search
white screen after disabling compatibility plugin · class not found on Joomla 6 · works on Joomla 5 until I turn off backward compatibility
Replace this code
Swap JPagination for Joomla\CMS\Pagination\Pagination.
Joomla 3
Remove or stop calling this
JPagination::getInstance();
// or new JPagination()Joomla 4 / 6
Use this instead
use Joomla\CMS\Pagination\Pagination;
// Call the namespaced class. Do not keep the J prefix.How to fix it
- 1Add a use statement for Joomla\CMS\Pagination\Pagination.
- 2Replace every JPagination with the short class name from that use line.
- 3Disable Behaviour – Backward Compatibility on a Joomla 5 staging site. If it fatals, this class is still in the code.
Also known as
JPagination · Joomla\CMS\Pagination\Pagination · class alias · J prefix
JPAGINATIONOBJECT-CLASS-001
JPaginationObject
JPaginationObject class name
JPaginationObject is a Joomla 3 global class. Joomla 4 still has an alias. Joomla 5 needs the Behaviour – Backward Compatibility plugin. Native Joomla 6 does not load that alias — you get Class "JPaginationObject" not found.
JPaginationObject → Joomla\CMS\Pagination\PaginationObject
Dies at Joomla 5 → 6What you will see
- Class "JPaginationObject" not found
- Class 'JPaginationObject' not found
- Failed to open stream: JPaginationObject
Symptoms people search
white screen after disabling compatibility plugin · class not found on Joomla 6 · works on Joomla 5 until I turn off backward compatibility
Replace this code
Swap JPaginationObject for Joomla\CMS\Pagination\PaginationObject.
Joomla 3
Remove or stop calling this
JPaginationObject::getInstance();
// or new JPaginationObject()Joomla 4 / 6
Use this instead
use Joomla\CMS\Pagination\PaginationObject;
// Call the namespaced class. Do not keep the J prefix.How to fix it
- 1Add a use statement for Joomla\CMS\Pagination\PaginationObject.
- 2Replace every JPaginationObject with the short class name from that use line.
- 3Disable Behaviour – Backward Compatibility on a Joomla 5 staging site. If it fatals, this class is still in the code.
Also known as
JPaginationObject · Joomla\CMS\Pagination\PaginationObject · class alias · J prefix
JUCM-CLASS-001
JUcmType
JUcmType class name
JUcmType is a Joomla 3 global class. Joomla 4 still has an alias. Joomla 5 needs the Behaviour – Backward Compatibility plugin. Native Joomla 6 does not load that alias — you get Class "JUcmType" not found.
JUcmType → Joomla\CMS\UCM\UCMType
Dies at Joomla 5 → 6What you will see
- Class "JUcmType" not found
- Class 'JUcmType' not found
- Failed to open stream: JUcmType
Symptoms people search
white screen after disabling compatibility plugin · class not found on Joomla 6 · works on Joomla 5 until I turn off backward compatibility
Replace this code
Swap JUcmType for Joomla\CMS\UCM\UCMType.
Joomla 3
Remove or stop calling this
JUcmType::getInstance();
// or new JUcmType()Joomla 4 / 6
Use this instead
use Joomla\CMS\UCM\UCMType;
// Call the namespaced class. Do not keep the J prefix.How to fix it
- 1Add a use statement for Joomla\CMS\UCM\UCMType.
- 2Replace every JUcmType with the short class name from that use line.
- 3Disable Behaviour – Backward Compatibility on a Joomla 5 staging site. If it fatals, this class is still in the code.
Also known as
JUcmType · Joomla\CMS\UCM\UCMType · class alias · J prefix · JUcm
JUCMBASE-CLASS-001
JUcmBase
JUcmBase class name
JUcmBase is a Joomla 3 global class. Joomla 4 still has an alias. Joomla 5 needs the Behaviour – Backward Compatibility plugin. Native Joomla 6 does not load that alias — you get Class "JUcmBase" not found.
JUcmBase → Joomla\CMS\UCM\UCMBase
Dies at Joomla 5 → 6What you will see
- Class "JUcmBase" not found
- Class 'JUcmBase' not found
- Failed to open stream: JUcmBase
Symptoms people search
white screen after disabling compatibility plugin · class not found on Joomla 6 · works on Joomla 5 until I turn off backward compatibility
Replace this code
Swap JUcmBase for Joomla\CMS\UCM\UCMBase.
Joomla 3
Remove or stop calling this
JUcmBase::getInstance();
// or new JUcmBase()Joomla 4 / 6
Use this instead
use Joomla\CMS\UCM\UCMBase;
// Call the namespaced class. Do not keep the J prefix.How to fix it
- 1Add a use statement for Joomla\CMS\UCM\UCMBase.
- 2Replace every JUcmBase with the short class name from that use line.
- 3Disable Behaviour – Backward Compatibility on a Joomla 5 staging site. If it fatals, this class is still in the code.
Also known as
JUcmBase · Joomla\CMS\UCM\UCMBase · class alias · J prefix
JUCMCONTENT-CLASS-001
JUcmContent
JUcmContent class name
JUcmContent is a Joomla 3 global class. Joomla 4 still has an alias. Joomla 5 needs the Behaviour – Backward Compatibility plugin. Native Joomla 6 does not load that alias — you get Class "JUcmContent" not found.
JUcmContent → Joomla\CMS\UCM\UCMContent
Dies at Joomla 5 → 6What you will see
- Class "JUcmContent" not found
- Class 'JUcmContent' not found
- Failed to open stream: JUcmContent
Symptoms people search
white screen after disabling compatibility plugin · class not found on Joomla 6 · works on Joomla 5 until I turn off backward compatibility
Replace this code
Swap JUcmContent for Joomla\CMS\UCM\UCMContent.
Joomla 3
Remove or stop calling this
JUcmContent::getInstance();
// or new JUcmContent()Joomla 4 / 6
Use this instead
use Joomla\CMS\UCM\UCMContent;
// Call the namespaced class. Do not keep the J prefix.How to fix it
- 1Add a use statement for Joomla\CMS\UCM\UCMContent.
- 2Replace every JUcmContent with the short class name from that use line.
- 3Disable Behaviour – Backward Compatibility on a Joomla 5 staging site. If it fatals, this class is still in the code.
Also known as
JUcmContent · Joomla\CMS\UCM\UCMContent · class alias · J prefix
JVIEWCATEGORIES-CLASS-001
JViewCategories
JViewCategories class name
JViewCategories is a Joomla 3 global class. Joomla 4 still has an alias. Joomla 5 needs the Behaviour – Backward Compatibility plugin. Native Joomla 6 does not load that alias — you get Class "JViewCategories" not found.
JViewCategories → Joomla\CMS\MVC\View\CategoriesView
Dies at Joomla 5 → 6What you will see
- Class "JViewCategories" not found
- Class 'JViewCategories' not found
- Failed to open stream: JViewCategories
Symptoms people search
white screen after disabling compatibility plugin · class not found on Joomla 6 · works on Joomla 5 until I turn off backward compatibility
Replace this code
Swap JViewCategories for Joomla\CMS\MVC\View\CategoriesView.
Joomla 3
Remove or stop calling this
JViewCategories::getInstance();
// or new JViewCategories()Joomla 4 / 6
Use this instead
use Joomla\CMS\MVC\View\CategoriesView;
// Call the namespaced class. Do not keep the J prefix.How to fix it
- 1Add a use statement for Joomla\CMS\MVC\View\CategoriesView.
- 2Replace every JViewCategories with the short class name from that use line.
- 3Disable Behaviour – Backward Compatibility on a Joomla 5 staging site. If it fatals, this class is still in the code.
Also known as
JViewCategories · Joomla\CMS\MVC\View\CategoriesView · class alias · J prefix
JVIEWCATEGORY-CLASS-001
JViewCategory
JViewCategory class name
JViewCategory is a Joomla 3 global class. Joomla 4 still has an alias. Joomla 5 needs the Behaviour – Backward Compatibility plugin. Native Joomla 6 does not load that alias — you get Class "JViewCategory" not found.
JViewCategory → Joomla\CMS\MVC\View\CategoryView
Dies at Joomla 5 → 6What you will see
- Class "JViewCategory" not found
- Class 'JViewCategory' not found
- Failed to open stream: JViewCategory
Symptoms people search
white screen after disabling compatibility plugin · class not found on Joomla 6 · works on Joomla 5 until I turn off backward compatibility
Replace this code
Swap JViewCategory for Joomla\CMS\MVC\View\CategoryView.
Joomla 3
Remove or stop calling this
JViewCategory::getInstance();
// or new JViewCategory()Joomla 4 / 6
Use this instead
use Joomla\CMS\MVC\View\CategoryView;
// Call the namespaced class. Do not keep the J prefix.How to fix it
- 1Add a use statement for Joomla\CMS\MVC\View\CategoryView.
- 2Replace every JViewCategory with the short class name from that use line.
- 3Disable Behaviour – Backward Compatibility on a Joomla 5 staging site. If it fatals, this class is still in the code.
Also known as
JViewCategory · Joomla\CMS\MVC\View\CategoryView · class alias · J prefix
JVIEWLEGACY-CLASS-001
JViewLegacy
JViewLegacy class name
JViewLegacy is a Joomla 3 global class. Joomla 4 still has an alias. Joomla 5 needs the Behaviour – Backward Compatibility plugin. Native Joomla 6 does not load that alias — you get Class "JViewLegacy" not found.
JViewLegacy → Joomla\CMS\MVC\View\HtmlView
Dies at Joomla 5 → 6What you will see
- Class "JViewLegacy" not found
- Class 'JViewLegacy' not found
- Failed to open stream: JViewLegacy
Symptoms people search
white screen after disabling compatibility plugin · class not found on Joomla 6 · works on Joomla 5 until I turn off backward compatibility
Replace this code
Swap JViewLegacy for Joomla\CMS\MVC\View\HtmlView.
Joomla 3
Remove or stop calling this
JViewLegacy::getInstance();
// or new JViewLegacy()Joomla 4 / 6
Use this instead
use Joomla\CMS\MVC\View\HtmlView;
// Call the namespaced class. Do not keep the J prefix.How to fix it
- 1Add a use statement for Joomla\CMS\MVC\View\HtmlView.
- 2Replace every JViewLegacy with the short class name from that use line.
- 3Disable Behaviour – Backward Compatibility on a Joomla 5 staging site. If it fatals, this class is still in the code.
Also known as
JViewLegacy · Joomla\CMS\MVC\View\HtmlView · class alias · J prefix
MVC-ASSIGNREF-001
$this->assignRef('item', $item)
assignRef() on views
assignRef was a PHP 4 leftover. It does nothing useful on Joomla 4+.
$this->assignRef('item', $item) → $this->item = $item
Dies at Joomla 3 → 4What you will see
- Call to undefined method ...::assignRef
Symptoms people search
view variables empty · assignRef
Replace this code
Swap $this->assignRef('item', $item) for $this->item = $item.
Joomla 3
Remove or stop calling this
$this->assignRef('items', $items);Joomla 4 / 6
Use this instead
$this->items = $items;How to fix it
- 1Assign properties directly.
Also known as
assignRef
MVC-GETERROR-001
$model->setError()
getError() / setError() on models and tables
setError/getError were the JError-era API. They linger in Joomla 3 components and fail silently or fatally once JError is gone.
$model->setError() → Exceptions
Dies at Joomla 3 → 4What you will see
- Call to undefined method ...::getError()
Symptoms people search
save fails with no message · getError empty
Replace this code
Swap $model->setError() for Exceptions.
Joomla 3
Remove or stop calling this
if (!$table->store()) {
$this->setError($table->getError());
return false;
}Joomla 4 / 6
Use this instead
try {
$table->store();
} catch (\RuntimeException $e) {
$this->setError($e->getMessage()); // better: throw
throw $e;
}How to fix it
- 1Throw on failure.
- 2Stop returning false plus getError() as the only signal.
Also known as
getError · setError
There is no 1:1 swap for this one. The architecture changed. If you cannot rewrite it, Infyways can.
MVC-GETINSTANCE-001
JModelLegacy::getInstance()
getInstance() on MVC classes
String getInstance on models/controllers/views is deprecated. MVC Factory resolves namespaced classes.
JModelLegacy::getInstance() → $this->getModel() / MVCFactory
Dies at Joomla 5 → 6What you will see
- Model class not found
Symptoms people search
getInstance model · cannot load model after namespace
Replace this code
Swap JModelLegacy::getInstance() for $this->getModel() / MVCFactory.
Joomla 3
Remove or stop calling this
$model = JModelLegacy::getInstance('Courses', 'LmsModel');Joomla 4 / 6
Use this instead
$model = $this->getModel('Courses');How to fix it
- 1Use $this->getModel() in controllers.
- 2Register the MVC factory in services/provider.php.
Also known as
JModelLegacy::getInstance · JControllerLegacy::getInstance
MVC-NEW-J3-001
Joomla\CMS\MVC (J3 experimental)
Experimental Joomla 3 “new MVC” namespace
Joomla 3 shipped an experimental MVC that Joomla 4 deleted. If you followed those J3 sample classes, they are gone.
Joomla\CMS\MVC (J3 experimental) → Original MVC: HtmlView, ListModel, BaseController
Dies at Joomla 3 → 4What you will see
- Class ... not found in experimental MVC
Symptoms people search
J3 new MVC tutorial code 500
Replace this code
Swap Joomla\CMS\MVC (J3 experimental) for Original MVC: HtmlView, ListModel, BaseController.
Joomla 3
Remove or stop calling this
use Joomla\CMS\MVC\View\HtmlView as Experimental;Joomla 4 / 6
Use this instead
Use the Joomla 4 MVC that came from the old legacy MVC, not the J3 experimental split. HtmlView / ListModel / FormController.How to fix it
- 1Port to the current namespaced MVC from JModelLegacy/JViewLegacy lineage.
Also known as
experimental MVC · Joomla 3 new MVC
There is no 1:1 swap for this one. The architecture changed. If you cannot rewrite it, Infyways can.