upgrade-checklist/Moving from J to Namespace.md

1.1 KiB

Class map in J3:

[https://github.com/joomla/joomla-cms/blob/3.10.12/libraries/classmap.php]

Class map in J5:

[https://github.com/joomla/joomla-cms/blob/5.0-dev/plugins/behaviour/compat/src/classmap/classmap.php]

How to handle Classes that have no new counterparts like:

JError

  • JError::raiseError() should be replaced with native exceptions.
  • JError::raiseWarning() and JError::raiseNotice should be replaced with calls to application's enqueueMessage() method to display warnings/notices.

This would mean you wrap your code in a try catch block and return the error. Someting like this:

try {
    // Your code here;
} catch (\RuntimeException $e) {
    throw new \Exception($e->getMessage(), 500, $e);
}

Or you would manually report an error back like this:

throw new \Exception(Text::_('Your error message here'), 500);

More info on backwards compatible issues:

[https://docs.joomla.org/Potential_backward_compatibility_issues_in_Joomla_4]

Deprecated JFactory::getDBO(); alternative

[https://github.com/joomla/joomla-cms/discussions/38111#discussioncomment-3971334]