Joomla Application類

2023-03-10 11:11 更新

Joomla在安裝的時候會安裝幾個Application(應(yīng)用程序),每一個應(yīng)用程序的負(fù)責(zé)不同的模塊。

Joomla Application(應(yīng)用程序)

Joomla在安裝的時候會安裝幾個Application(應(yīng)用程序),每一個應(yīng)用程序的負(fù)責(zé)不同的模塊:

  • Site,也就是我們常說的前臺
  • Administrator ,也就是我們說的后臺。在后臺可以對網(wǎng)站前臺的內(nèi)容進(jìn)行管理和維護(hù)。
  • Installer ,Joomla網(wǎng)站的安裝程序(注意,這里的安裝程序不是Joomla后的擴(kuò)展管理,安裝擴(kuò)展功能),就是最開始在你的WEB環(huán)境中安裝Joomla時出現(xiàn)的界面。在安裝完成后,Installer應(yīng)用就會被刪除。

繼承關(guān)系

上面的Administrator,Site和Installion是主要的應(yīng)用程序,每一個應(yīng)用程序類都繼承自 \\Joomla\\Application\\AbstractApplication這個虛基類。其最終的類名為:

  • Administrator => JApplicationAdministrator,
  • Site  => JApplicationSite
  • Installer => InstallationApplicationWeb

繼承關(guān)系圖如下:

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();可以得到當(dāng)前的應(yīng)用程序?qū)ο螅到y(tǒng)會自動的基于當(dāng)前的運(yùn)行環(huán)境返回正確的類。也就是說在前臺使用上面的代碼得到的$app對象實(shí)際是JApplicationSIte類的一個實(shí)例,在后臺則得到是JApplicationAdministrator類的一個實(shí)例。

CLI命令行應(yīng)用

 除了能夠做瀏覽器應(yīng)用外,Joomla也可以做CLI命令行應(yīng)用。建立自己的命令行應(yīng)用需要基礎(chǔ)Joomla 的JApplicationCli類,一個簡單的范例如下:

/**
 * A command line cron job to attempt to remove files that should have been deleted at update.
 *
 * @since  3.0
 */
class DeletefilesCliextends 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

守護(hù)程序

Joomla也可以做守護(hù)進(jìn)程,官方資料顯示只需要繼承 JApplicationDaemon 類,但本人目前沒有找到具體的案例代碼


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號