Joomla在安装的时候会安装几个Application(应用程序),每一个应用程序的负责不同的模块。
Joomla Application(应用程序)
Joomla
在安装的时候会安装几个Application
(应用程序),每一个应用程序的负责不同的模块:
- Site,也就是我们常说的前台
- Administrator ,也就是我们说的后台。在后台可以对网站前台的内容进行管理和维护。
- Installer ,Joomla网站的安装程序(注意,这里的安装程序不是Joomla后的扩展管理,安装扩展功能),就是最开始在你的WEB环境中安装Joomla时出现的界面。在安装完成后,Installer应用就会被删除。
继承关系
上面的Administrator
,Site
和Installion
是主要的应用程序,每一个应用程序类都继承自 \\Joomla\\Application\\AbstractApplication
这个虚基类。其最终的类名为:
- Administrator => JApplicationAdministrator,
- Site => JApplicationSite
- Installer => InstallationApplicationWeb
继承关系图如下:
Joomla Framework Abstract Application | | |---> Base Application (adds some CMS Specific functions) | | |---> Web Application (adds some generic web application functions) | | | | | |---> JApplicationCms (things specific for running the CMS) | | | |---> JApplicationAdministrator | | | |---> JApplicationSite | | | |---> InstallationApplicationWeb | | |---> CLI Application | | |---> Daemon Application
通过$app = JFactory::getApplication
()
;可以得到当前的应用程序对象,系统会自动的基于当前的运行环境返回正确的类。也就是说在前台使用上面的代码得到的$app
对象实际是JApplicationSIte
类的一个实例,在后台则得到是JApplicationAdministrator
类的一个实例。
CLI命令行应用
除了能够做浏览器应用外,Joomla
也可以做CLI
命令行应用。建立自己的命令行应用需要基础Joomla 的JApplicationCli
类,一个简单的范例如下:
/** * A command line cron job to attempt to remove files that should have been deleted at update. * * @since 3.0 */ class DeletefilesCli extends JApplicationCli { /** * Entry point for CLI script * * @return void * * @since 3.0 */ public function doExecute() { // Import the dependencies jimport('joomla.filesystem.file'); jimport('joomla.filesystem.folder'); // We need the update script JLoader::register('JoomlaInstallerScript', JPATH_ADMINISTRATOR . '/components/com_admin/script.php'); // Instantiate the class $class = new JoomlaInstallerScript; // Run the delete method $class->deleteUnexistingFiles(); } } // Instantiate the application object, passing the class name to JCli::getInstance // and use chaining to execute the application. JApplicationCli::getInstance('DeletefilesCli')->execute();
完整的代码请查看 Joomla
安装目录 cli\deletefiles.php
守护程序
Joomla
也可以做守护进程,官方资料显示只需要继承 JApplicationDaemon 类,但本人目前没有找到具体的案例代码