簡體   English   中英

包括運行功能的PHP腳本嗎?

[英]Include PHP Scripts which run functions?

我正在尋找一個類似程序的插件管理器,它會啟動一個循環,在“ plugins”文件夾中搜索.php文件。 我需要它以某種方式在每個文件中運行一個稱為main()的函數,然后該函數將運行其他函數。 在沒有其他main()函數沖突的情況下,我如何才能做到這一點,還有更好的選擇嗎?

如果要使用函數,則可以對其命名空間。 但是對於類似此id的東西,請使用類。 例如每個插件可能有一個PluginConfiguration其可以要么被命名空間等類PluginName\\PluginConfiguration或偽造等PluginName_PluginConfiguration

然后,您可以將這些類實例化,然后調用任何示例:

class MyCool_Plugin implements PluginInterface {

  // note the interface wouldnt be absolutely necessary, 
  // but making an interface or abstract class for this would be a good idea
  // that way you can enforce a contractual API on the configuration classes

  public function __construct() {
     // do whatever here
  }

  public function main() {
     // do whatever here
  }
}

更新:

順便說一句,“ PluginInterface”將包括什么?

那么一個接口定義了一個類必須實現的所有方法(函數)。 您可以使用它在implements該接口的任何類上強制實施最低限度的API。 根據您的描述,這將是main的方法,盡管在開發過程中您可能會發現您需要/想要添加更多。

Interface PluginInterface {

   public function main();

}

您還可以使用類型提示來強制執行特定的方法簽名。 例如,假設您總是想注入將插件加載到插件本身的Application實例,以便它可以注冊內容或設置其他內容。 在這種情況下,您可以執行以下操作:

Interface PluginInterface {

   public function main(Application $app);

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM