Potential backward compatibility issues in Joomla 4

From Joomla! Documentation

Revision as of 22:15, 11 February 2017 by FuzzyBot (talk | contribs) (Importing a new version from external source)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Content is Incomplete

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