Actions

Difference between revisions of "Framework (CMS 1.5 and 1.6)"

From Joomla! Documentation

(Added architecture diagram and reworded some of the explanatory text. Moved constants to separate page.)
m (See Also: adding link to Framework vs Platform)
(32 intermediate revisions by 10 users not shown)
Line 1: Line 1:
{{RightTOC}}
+
{{Chunk:Framework quote}}
<blockquote>
+
{{Chunk:Framework}}
''A '''software framework''' is a reusable design for a software system (or subsystem). This is expressed as a set of [[:Wikipedia:abstract class|abstract class]]es and the way their instances collaborate for a specific type of software. Software frameworks can be [[:Wikipedia:Object-oriented programming|object-oriented designs]]. Although designs don't have to be implemented in an object-oriented language, they usually are. A software framework may include support programs, code [[:Wikipedia:Libraries|libraries]]<ref>[[PHP libraries]] bundled with Joomla!</ref>, a [[:Wikipedia:JavaScript|scripting language]]<ref>[[JavaScript libraries]] bundled with Joomla!</ref>, or other software to help develop and ''glue together'' the different components of a software project. Various parts of the framework may be exposed through an application programming interface ([[:Wikipedia:Application programming interface|API]]).''
+
== API Reference ==
:''From [[:Wikipedia:Framework|Wikipedia]]''
+
</blockquote>
+
  
[[Image:JoomlaArchitecture0.png]]
+
On this page we'd like to provide you a way to reference of all classes and respective methods. Use the links below to navigate to further information about framework versions or the version classes which include, where possible, examples of use.
  
[[:Category:Joomla! 1.5|Joomla! 1.5]] is a three tiered system:-
+
If you would like to help us improve this resource, please read about the [[API Reference Project]].
* The top, Extensions layer, consists of [[Extension|Extensions]] to the Joomla [[Framework]] and its applications:
+
** [[Module|Modules]]
+
** [[Component|Components]]
+
** [[Template|Templates]]
+
* The middle, Application layer, consists of applications that extend the Framework [[JApplication]] class.  Currently there are four applications included in the Joomla distribution:-
+
** [[JInstallation]] is responsible for installing Joomla on a web server and is deleted after the installation procedure has been completed.
+
** [[JAdministrator]] is responsible for the back-end Administrator.
+
** [[JSite]] is responsible for the front-end of the website.
+
** [[XML-RPC]] supports remote administration of the Joomla website.
+
* The bottom, Framework layer, consists of:-
+
** the Joomla [[Framework]] itself, whose classes are listed below.
+
** [[Library|Libraries]] that are required by the [[Framework]] or are installed for use by third-party developers.
+
** [[Plugin|Plugins]] extend the functionality available in the [[Framework]].
+
  
== Packages and Classes ==
+
{{splist|API documentation is available in the following Joomla! '''Framework''' Versions|versions}}
The classes in the {{jf}} are loosely grouped into several different packages.
+
=== See Also ===
 
+
<references/>
* [[JFactory]]
+
=== Further Reading ===
* [[JRoute]]
+
*[[Joomla! Framework vs Joomla! Platform]]
* [[JText]]
+
<noinclude>[[Category:Framework]][[Category:Subpackages]]</noinclude>
* [[JVersion]]
+
===Application===
+
* [[JApplication]]
+
* [[JApplicationHelper]]
+
* [[JMenu]]
+
* [[JPathway]]
+
* [[JRouter]]
+
* [[JController]]
+
* [[JComponentHelper]]
+
* [[JModel]]
+
* [[JView]]
+
* [[JModuleHelper]]
+
===Base===
+
* [[JObject]]
+
* [[JObservable]]
+
* [[JObserver]]
+
* [[JTree]]
+
* [[JNode]]
+
===Cache===
+
* [[JCache]]
+
* [[JCacheStorage]]
+
* [[JCacheCallback]]
+
* [[JCacheOutput]]
+
* [[JCachePage]]
+
* [[JCacheView]]
+
* [[JCacheStorageApc]]
+
* [[JCacheStorageEaccelerator]]
+
* [[JCacheStorageFile]]
+
* [[JCacheStorageMemcache]]
+
* [[JCacheStorageXCache]]
+
* [[JFTP]]
+
===Client===
+
* [[JClientHelper]]
+
* [[JLDAP]]
+
===Database===
+
* [[JDatabase]]
+
* [[JRecordset]]
+
* [[JTable]]
+
* [[JDatabaseMySQL]]
+
* [[JDatabaseMySQLi]]
+
* [[JTableARO]]
+
* [[JTableAROGroup]]
+
* [[JTableCategory]]
+
* [[JTableComponent]]
+
* [[JTableContent]]
+
* [[JTableMenu]]
+
* [[JTableMenuTypes]]
+
* [[JTableModule]]
+
* [[JTablePlugin]]
+
* [[JTableSection]]
+
* [[JTableSession]]
+
* [[JTableUser]]
+
===Document===
+
* [[JDocument]]
+
* [[JDocumentRenderer]]
+
* [[JDocumentError]]
+
* [[JDocumentFeed]]
+
* [[JDocumentRendererAtom]]
+
* [[JDocumentRendererRSS]]
+
* [[JDocumentHTML]]
+
* [[JDocumentRendererComponent]]
+
* [[JDocumentRendererHead]]
+
* [[JDocumentRendererMessage]]
+
* [[JDocumentRendererModule]]
+
* [[JDocumentRendererModules]]
+
* [[JDocumentPDF]]
+
* [[JDocumentRaw]]
+
* [[JDocumentXML]] (1.6 onwards)
+
 
+
===Environment===
+
* [[JBrowser]]
+
* [[JRequest]]
+
* [[JResponse]]
+
* [[JURI]]
+
===Error===
+
* [[JError]]
+
* [[JException]]
+
* [[JLog]]
+
* [[JProfiler]]
+
===Event===
+
* [[JDispatcher]]
+
* [[JEvent]]
+
===Filesystem===
+
* [[JArchive]]
+
* [[JFile]]
+
* [[JFolder]]
+
* [[JPath]]
+
* [[JArchiveBzip2]]
+
* [[JArchiveGzip]]
+
* [[JArchiveTar]]
+
* [[JArchiveZip]]
+
===Filter===
+
* [[JFilterInput]]
+
* [[JFilterOutput]]
+
===HTML===
+
* [[JEditor]]
+
* [[JHTML]]
+
* [[JPagination]]
+
* [[JPane]]
+
* [[JParameter]]
+
* [[JToolBar]]
+
* [[JHTMLBehavior]]
+
* [[JHTMLContent]]
+
* [[JHTMLEmail]]
+
* [[JHTMLForm]]
+
* [[JHTMLGrid]]
+
* [[JHTMLImage]]
+
* [[JHTMLList]]
+
* [[JHTMLMenu]]
+
* [[JHTMLSelect]]
+
* [[JElement]]
+
* [[JElementCalendar]]
+
* [[JElementCategory]]
+
* [[JElementEditors]]
+
* [[JElementFileList]]
+
* [[JElementFolderList]]
+
* [[JElementHelpsites]]
+
* [[JElementHidden]]
+
* [[JElementImageList]]
+
* [[JElementLanguages]]
+
* [[JElementList]]
+
* [[JElementMenu]]
+
* [[JElementMenuItem]]
+
* [[JElementPassword]]
+
* [[JElementRadio]]
+
* [[JElementSection]]
+
* [[JElementSpacer]]
+
* [[JElementSQL]]
+
* [[JElementText]]
+
* [[JElementTextarea]]
+
* [[JElementTimezones]]
+
* [[JElementUserGroup]]
+
* [[JButton]]
+
* [[JButtonConfirm]]
+
* [[JButtonCustom]]
+
* [[JButtonHelp]]
+
* [[JButtonLink]]
+
* [[JButtonPopup]]
+
* [[JButtonSeparator]]
+
* [[JButtonStandard]]
+
===Installer===
+
* [[JInstallerHelper]]
+
* [[JInstaller]]
+
* [[JInstallerComponent]]
+
* [[JInstallerLanguage]]
+
* [[JInstallerModule]]
+
* [[JInstsallerPlugin]]
+
* [[JInstallerTemplate]]
+
===Language===
+
* [[JHelp]]
+
* [[JLanguageHelper]]
+
* [[JLanguage]]
+
===Mail===
+
* [[JMailHelper]]
+
* [[JMail]]
+
===Plugin===
+
* [[JPluginHelper]]
+
* [[JPlugin]]
+
===Registry===
+
* [[JRegistryFormat]]
+
* [[JRegistry]]
+
* [[JRegistryFormatINI]]
+
* [[JRegistryFormatPHP]]
+
* [[JRegistryFormatXML]]
+
===Session===
+
* [[JSession]]
+
* [[JSessionStorage]]
+
* [[JSessionStorageApc]]
+
* [[JSessionStorageDatabase]]
+
* [[JSessionStorageEaccelerator]]
+
* [[JSessionStorageMemcache]]
+
* [[JSessionStorageNone]]
+
* [[JSessionStorageXcache]]
+
===Template===
+
This package is deprecated.  Template extensions are part of the Document package now.
+
* [[JTemplate]]
+
* [[patTemplate_Function_Sef]]
+
* [[patTemplate_Function_Translate]]
+
* [[patTemplate_Modifier_SEF]]
+
* [[patTemplate_Modifer_Translate]]
+
===User===
+
* [[JAuthentication]]
+
* [[JAuthorization]]
+
* [[JUserHelper]]
+
* [[JUser]]
+
===Utilities===
+
* [[JArrayHelper]]
+
* [[JBuffer]]
+
* [[JDate]]
+
* [[JSimpleCrypt]]
+
* [[JSimpleXML]]
+
* [[JString]]
+
* [[JUtility]]
+
 
+
==See also==
+
<references />
+
<noinclude>[[Category:Development]][[Category:Framework]]</noinclude>
+

Revision as of 12:31, 25 August 2012

A software framework is a reusable design for a software system (or subsystem). This is expressed as a set of abstract classes and the way their instances collaborate for a specific type of software. Software frameworks can be object-oriented designs. Although designs don't have to be implemented in an object-oriented language, they usually are. A software framework may include support programs, code libraries[1], a scripting language[2], or other software to help develop and glue together the different components of a software project. Various parts of the framework may be exposed through an application programming interface (API).

From Wikipedia


The Joomla Framework is a platform for writing web and command line applications in PHP. It is free and open source software, distributed under the GNU General Public License version 2 or later.[3]

The Framework comprises code originally developed for the Joomla Content Management System and is a continuation of the Platform project. The Joomla Framework and the Joomla CMS are separate projects with separate development teams. Unlike the Platform, the Framework is not primarily intended as a platform for the Joomla CMS, and the Joomla CMS is not currently built on the Framework. More information about the differences between the Platform and the Framework can be found in the March 2013 edition of the Joomla Community Magazine.

API Reference

On this page we'd like to provide you a way to reference of all classes and respective methods. Use the links below to navigate to further information about framework versions or the version classes which include, where possible, examples of use.

If you would like to help us improve this resource, please read about the API Reference Project.

See Also

  1. See also External Libraries in Joomla bundled with Joomla!
  2. See also JavaScript libraries bundled with Joomla!
  3. https://github.com/joomla/joomla-framework/

Further Reading