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}} | ||
− | |||
− | |||
<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> | ||
− | + | [[Image:JoomlaArchitecture0.png]] | |
− | [[: | ||
− | The | + | [[: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: | |
− | + | ** [[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 == | == 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
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
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:-
Packages and Classes[edit]
The classes in the Joomla! Framework are loosely grouped into several different packages.
Application[edit]
- JApplication
- JApplicationHelper
- JMenu
- JPathway
- JRouter
- JController
- JComponentHelper
- JModel
- JView
- JModuleHelper
Base[edit]
Cache[edit]
- JCache
- JCacheStorage
- JCacheCallback
- JCacheOutput
- JCachePage
- JCacheView
- JCacheStorageApc
- JCacheStorageEaccelerator
- JCacheStorageFile
- JCacheStorageMemcache
- JCacheStorageXCache
- JFTP
Client[edit]
Database[edit]
- JDatabase
- JRecordset
- JTable
- JDatabaseMySQL
- JDatabaseMySQLi
- JTableARO
- JTableAROGroup
- JTableCategory
- JTableComponent
- JTableContent
- JTableMenu
- JTableMenuTypes
- JTableModule
- JTablePlugin
- JTableSection
- JTableSession
- JTableUser
Document[edit]
- JDocument
- JDocumentRenderer
- JDocumentError
- JDocumentFeed
- JDocumentRendererAtom
- JDocumentRendererRSS
- JDocumentHTML
- JDocumentRendererComponent
- JDocumentRendererHead
- JDocumentRendererMessage
- JDocumentRendererModule
- JDocumentRendererModules
- JDocumentPDF
- JDocumentRaw
- JDocumentXML (1.6 onwards)
Environment[edit]
Error[edit]
Event[edit]
Filesystem[edit]
Filter[edit]
HTML[edit]
- 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[edit]
- JInstallerHelper
- JInstaller
- JInstallerComponent
- JInstallerLanguage
- JInstallerModule
- JInstsallerPlugin
- JInstallerTemplate
Language[edit]
Mail[edit]
Plugin[edit]
Registry[edit]
Session[edit]
- JSession
- JSessionStorage
- JSessionStorageApc
- JSessionStorageDatabase
- JSessionStorageEaccelerator
- JSessionStorageMemcache
- JSessionStorageNone
- JSessionStorageXcache
Template[edit]
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[edit]
Utilities[edit]
See also[edit]
- ↑ PHP libraries bundled with Joomla!
- ↑ JavaScript libraries bundled with Joomla!