Potential backward compatibility issues in Joomla 4
From Joomla! Documentation
This article or section is incomplete, which means it may be lacking information. You are welcome to assist in its completion by editing it as well. If this article or section has not been edited in several days, please consider helping complete the content.
This article was last edited by FuzzyBot (talk| contribs) 9 years ago. (Purge)
This document tracks potential backward compatibility issues for Joomla! 4. Listed are issues which potentially break extensions.
The base of this comparison is Joomla! 3.7.
Updated System Requirements
The system requirements have been updated as follows:
- PHP 5.5.9
- MySQL 5.5.3
- PostgreSQL 9.2
- SQL Server support has been dropped
Platform
The following changes have been made to Joomla! Platform libraries (this is primarily code found in the `libraries/joomla` or `libraries/legacy` directories in Joomla! 3).
Application
Removed Classes
The following classes have been removed in Joomla! 4.0:
- JApplicationWebRouter (use the `joomla/router` package instead)
- JApplicationWebRouterBase (use the `joomla/router` package instead)
- JApplicationWebRouterRest (use the `joomla/router` package instead)
Deprecated Classes
The following classes have been deprecated and scheduled for removal in Joomla! 5.0:
- JApplicationBase (use Joomla\Application\AbstractApplication instead)
CLI/Web Class Changes
The JApplicationCli and JApplicationWeb classes have been recomposed to extend from the Framework's Application package instead. This breaks type checks for a JApplicationBase object. For forward compatibility, it is recommended to check if application classes are an instance of Joomla\Application\AbstractApplication (JApplicationBase has extended this class since Joomla! 3.4).
Additionally, both of these classes are now abstract. Developers implementing these classes must provide a `doExecute` method with their application's logic.
JApplicationCli
- Old: JApplicationCli → JApplicationBase → Joomla\Application\AbstractApplication
- New: JApplicationCli → Joomla\Application\AbstractCliApplication → Joomla\Application\AbstractApplication
JApplicationWeb
- Old: JApplicationWeb → JApplicationBase → Joomla\Application\AbstractApplication
- New: JApplicationWeb → Joomla\Application\AbstractWebApplication → Joomla\Application\AbstractApplication