This repository has been archived by the owner. It is now read-only.


elinw edited this page Aug 31, 2012 · 32 revisions


This is a living (always draft) roadmap. All points are subject to delivery by interested parties and may be changed or reprioritised without notice. If you are looking for projects to work on, Desirable Features or the Joomla Ideas Pool may also be helpful.


Closed and tagged on 4 January 2012.

Minor compatibility changes

A new autoloader was implemented and some classes where renamed to use it. Original classes have been retained but will be removed in 12.3.

  • JRule renamed to JAccessRule.
  • JRules renamed to JAccessRules.
  • JCli renamed to JApplicationCli.
  • JWeb renamed to JApplicationWeb.
  • All class members of JFTP except JFTP::$instances are now private.
  • JError::$_error is now protected.
  • JRequest::_cleanArray() has been removed.
  • JArchiveGzip:: $_flags and JArchiveGzip:: $_data are now private.
  • JArchiveTar:: $_types, JArchiveTar:: $_flags, JArchiveTar:: $_data and JArchiveTar:: $_metadata are now private.
  • JArchiveZip:: $_methods, JArchiveZip:: $_ctrlDirHeader, JArchiveZip:: $_ctrlDirEnd, JArchiveZip:: $_fileHeader and JArchiveZip:: $_data are now private.
  • JSimpleXML:: $_parser, JSimpleXML:: $_xml and JSimpleXML:: $_stack are now private.
  • In JComponentHelper::renderComponent the execution of the component is moved to the new function JComponentHelper::executeComponent. A component cannot change or use any of the (internal) variables of renderComponent that might be used by the function later on, like $task or $option.
  • The "onPrepareUserProfileData" event has been removed. Listen for the "onContentPrepareData" with a context of "com_users.profile" instead.
  • JTableUser $this->groups in the store and load methods now is an associative array of id => id rather than title => id.


Released 10 May 2012.

  1. Simplification and rationalisation of the MVC classes (including, but not limited to splitting into separate model, view and controller packages).
  2. StringInflector class
  3. More database support (PDO drivers, Postgres, Oracle)


Aggressive review of API that is CMS specific and should be removed from the core platform was carried out.

Deprecated classes removed from the platform or significant changes due to deprecation.

  1. JError - use PHP 5 exception handling as a replacement.
  2. JCategories - downstream users add to their local API.
  3. JCategoriesNode - downstream users add to their local API.
  4. JMenu - downstream users add to their local API.
  5. #780 JController properties $_acoSection and $_acoSectionValue.
  6. #780 JController methods authorize (use authorise) and setAccessControl (use JAccess).
  7. #779 JObject::toString (replaced with magic __toString).
  8. #743 (work in progress) JDatabase properties $errorNum, $errorMsg, $hasQuoted, $quoted. - Partially complete in #743
  9. #743 (work in progress) JDatabase* methods addQuoted, debug, getErrorMsg, getErrorNum, getEscaped, getTableFields, getTicker, isQuoted, hasUtf, explain, loadResultArray, nameQuote, queryBatch, stdErr.
  10. #768 JTable methods canDelete and toXml.
  11. JRequest (use JInput via dependancy injection instead).
  12. #755 JHtmlBehavior method mootools.
  13. #755 JHtmlGrid method access.
  14. #755 JHtmlImage methods site and administrator.
  15. #755 JHtmlList methods accesslevel, specificordering and category.
  16. #755 JHtmlSelect method optgroup.
  17. #744 JElement and all derived classes.
  18. #755 JPane.
  19. #744 JParameter.
  20. #757 JLanguage methods getPluralSufficesCallback, _parseLanguageFiles, _parseXMLLanguageFiles and _parseXMLLanguageFile (all functionality still available but using different method names).
  21. JLog property $legacy and methods getInstance and addEntry.
  22. #759 JRegistry methods loadXml, loadIni, loadJson, makeNameSpace, getNameSpaces, getValue, setValue and loadSetupFile.
  23. JUpdater method arrayUnique.
  25. #770, 773 JUser property $usertype and methods authorize and authorisedLevels (both methods changed name).
  26. #772 JDate property $offsets and methods setOffset and toFormat.
  27. #753 JSimpleXml
  28. JUtility methods sendMail, sendAdminMail, getHash, getToken, isWinOs, dump, array_unshift_ref and return_bytes.
  29. JXmlElement methods data and getAttribute.
  30. #763 JFactory method getXmlParser.
  31. JBrowser
  32. JNode
  33. JTree
  34. #771 JInstaller methods getOverwrite and getUpgrade, valid use of tag in extension manifests.
  35. #790 Dropped support for com_install and com_uninstall and for client=both in language metafile tag. Removed code which checked for plugins with CMS 1.5 file structure.
  36. #1031 Protected property _tz in JDate was renamed to tz.
  37. #1044 Underscore prefix has been removed from protected properties of the JProfiler class.
  38. #1049 Underscore prefix has been removed from protected properties of the JUri class.
  39. #1056 Underscore prefix has been removed from protected properties of the JInstallerLanguage class.
  40. #1055 Underscore prefix has been removed from public _buffers property in JBuffer class.
  41. #1111 Underscore prefix has been removed from protected properties in JStream and JStreamString classes.
  42. #1111 Underscore prefix has been removed from protected properties in update package.


Scheduled to be released in September 2012.

  • Basic PHARchive support
  • Password hashing support

Desirable Goals

Expanded use of autoloader


  1. Aggressive review of API that is CMS specific and should be removed from the core platform.


Scheduled to be released in October 2012. This is the last scheduled release of version 12 of the platform.

Desirable goals

  1. All J-classes conform to the auto-loader naming conventions.
  2. Content package (Unified Content Model)
  3. Feed package (to replace SimplePie)
  4. Review input and output filtering (also looking at pluggable filter types).
  5. Simplify cache package and handlers.
  6. Refactor/replace file package with stream handlers.

Deprecated classes to be removed from the platform or significant changes due to deprecation.

  1. JObservable
  2. JObserver
  3. JFactory::_createConfig
  4. JFactory::_createSession
  5. JFactory::_createDbo
  6. JFactory::_createMailer
  7. JFactory::_createLanguage
  8. JFactory::_createDocument
  9. JUser::getParameters


Scheduled to be released in January 2013.

Future goals

The future goals for any version of the platform.

  1. Refactoring to improve use of dependancy injection, employing composition over inheritance.
  2. Improve implementation and usage of interfaces.
  3. Employ PHP native classes more widely (exceptions, streams, SPL, etc).
  4. Testing code coverage of all packages to exceed 80%.
  5. Improved support for auto-loading classes and interfaces.
  6. Implement name spacing.

Future features

  1. Provision of a device independent web services layer.