Actions

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

From Joomla! Documentation

m (Added link for JDocumentXML)
(Added architecture diagram and reworded some of the explanatory text. Moved constants to separate page.)
Line 1: Line 1:
 
{{RightTOC}}
 
{{RightTOC}}
[[Category:Development]]
 
[[Category:Framework]]
 
 
<blockquote>
 
<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]]).''
 
''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]]).''
Line 7: Line 5:
 
</blockquote>
 
</blockquote>
  
= Joomla! Framework =
+
[[Image:JoomlaArchitecture0.png]]
[[: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.
+
[[:Category:Joomla! 1.5|Joomla! 1.5]] is a three tiered system:-
 
+
* The top, Extensions layer, consists of [[Extension|Extensions]] to the Joomla [[Framework]] and its applications:
== Application Constants ==
+
** [[Module|Modules]]
 
+
** [[Component|Components]]
Each application type defines several constants:
+
** [[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:-
JPATH_ROOT          The path to the installed Joomla! site
+
** [[JInstallation]] is responsible for installing Joomla on a web server and is deleted after the installation procedure has been completed.
  JPATH_SITE          The path to the installed Joomla! site
+
** [[JAdministrator]] is responsible for the back-end Administrator.
JPATH_CONFIGURATION The path to folder containing the configuration.php file
+
** [[JSite]] is responsible for the front-end of the website.
JPATH_ADMINISTRATOR The path to the administrator folder
+
** [[XML-RPC]] supports remote administration of the Joomla website.
JPATH_XMLRPC        The path to the XML-RPC Web service folder
+
* The bottom, Framework layer, consists of:-
JPATH_LIBRARIES    The path to the libraries folder
+
** the Joomla [[Framework]] itself, whose classes are listed below.
JPATH_PLUGINS      The path to the plugins folder
+
** [[Library|Libraries]] that are required by the [[Framework]] or are installed for use by third-party developers.
JPATH_INSTALLATION  The path to the installation folder
+
** [[Plugin|Plugins]] extend the functionality available in the [[Framework]].
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 ==
 
== Packages and Classes ==
Line 232: Line 224:
 
==See also==
 
==See also==
 
<references />
 
<references />
 +
<noinclude>[[Category:Development]][[Category:Framework]]</noinclude>

Revision as of 14:47, 6 January 2009

Contents

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

JoomlaArchitecture0.png

Joomla! 1.5 is a three tiered system:-

  • The top, Extensions layer, consists of Extensions to the Joomla Framework and its applications:
  • 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.
    • Libraries that are required by the Framework or are installed for use by third-party developers.
    • Plugins extend the functionality available in the Framework.

Packages and Classes

The classes in the Joomla! Framework are loosely grouped into several different packages.

Application

Base

Cache

Client

Database

Document

Environment

Error

Event

Filesystem

Filter

HTML

Installer

Language

Mail

Plugin

Registry

Session

Template

This package is deprecated. Template extensions are part of the Document package now.

User

Utilities

See also

  1. PHP libraries bundled with Joomla!
  2. JavaScript libraries bundled with Joomla!