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

From Joomla! Documentation

m (Added link for JDocumentXML)
m (→‎See Also: adding link to Framework vs Platform)
(33 intermediate revisions by 10 users not shown)
Line 1: Line 1:
{{RightTOC}}
+
{{Chunk:Framework quote}}
[[Category:Development]]
+
{{Chunk:Framework}}
[[Category:Framework]]
+
== API Reference ==
<blockquote>
 
''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]]).''
 
:''From [[:Wikipedia:Framework|Wikipedia]]''
 
</blockquote>
 
  
= Joomla! Framework =
+
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. The bottom tier is the framework level and consists of the [[:Category:Framework package|libraries]] and plugins (formerly known as mambots). The second tier is the application level and consists of the [[JApplication]] class. Currently there are four<ref>The fourth, "hidden" application is the [[XMP-RPC]] server.</ref> applications that ship with Joomla: [[JInstallation]], [[JAdministrator]] and [[JSite]]. The application acts as the main controller for the page.  
 
  
The third tier is the [[Extension|extension level]]. This level is where all [[:Component|component]], [[Module|module]], and [[Template|template]] logic is executed and rendered.
+
If you would like to help us improve this resource, please read about the [[API Reference Project]].
  
== Application Constants ==
+
{{splist|API documentation is available in the following Joomla! '''Framework''' Versions|versions}}
 
+
=== See Also ===
Each application type defines several constants:
+
<references/>
 
+
=== Further Reading ===
JPATH_ROOT          The path to the installed Joomla! site
+
*[[Joomla! Framework vs Joomla! Platform]]
JPATH_SITE          The path to the installed Joomla! site
+
<noinclude>[[Category:Framework]][[Category:Subpackages]]</noinclude>
JPATH_CONFIGURATION The path to folder containing the configuration.php file
 
JPATH_ADMINISTRATOR The path to the administrator folder
 
JPATH_XMLRPC        The path to the XML-RPC Web service folder
 
JPATH_LIBRARIES    The path to the libraries folder
 
JPATH_PLUGINS      The path to the plugins folder
 
JPATH_INSTALLATION  The path to the installation folder
 
JPATH_THEMES        The path to the templates folder
 
JPATH_CACHE        The path to the cache folder
 
JPATH_COMPONENT    The path to the current component being executed
 
 
 
These constants are defined in <code>_path_/includes/defines.php</code>
 
 
 
== Packages and Classes ==
 
The classes in the {{jf}} are loosely grouped into several different packages.
 
 
 
* [[JFactory]]
 
* [[JRoute]]
 
* [[JText]]
 
* [[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 />
 

Revision as of 13: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[edit]

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[edit]

  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[edit]