[英]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.