Skip to content
This repository has been archived by the owner on Nov 26, 2017. It is now read-only.

Roadmap

eddieajau edited this page Mar 25, 2012 · 32 revisions

Roadmap

This is a living (always draft) roadmap. All points are subject to delivery by interested parties and may be changed or reprioritised without notice.

11.4

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 deprecated 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. Use JAccess getGroupsByUser to get a lit of names.

12.1

Scheduled to be released end of Q1 2012.

Desirable new features

  1. Content package (Universal Content Model)
  2. Feed package (to replace SimplePie)
  3. StringInflector class
  4. More database support (PDO drivers, Postgres, Oracle)

Desirable refactoring

  1. Simplification and rationalisation of the MVC classes (including, but not limited to splitting into separate model, view and controller packages).
  2. Review input and output filtering (also looking at pluggable filter types).
  3. Simplify cache package and handlers.
  4. Refactor/replace file package with stream handlers.
  5. Aggressive review of API that is CMS specific and should be removed from the core platform.

Deprecated classes to be 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.
  24. #770 User package constants JAUTHENTICATE_STATUS_SUCCESS, JAUTHENTICATE_STATUS_CANCEL and JAUTHENTICATE_STATUS_FAILURE.
  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.

12.2

Scheduled to be released end of Q2 2012.

12.3

Scheduled to be released end of Q3 2012.

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

12.4

Scheduled to be released end of Q4 2012.

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%.

Future features

  1. Provision of a device independent web services layer.
Clone this wiki locally