2011-07-06 14 views
0

如何使用php創建實現插件接口的實例,並將其保存在特定的插件目錄中。PHP插件加載器,它在特定目錄中創建插件的實例,以及哪些插件接口

我沒有在C#中類似的東西

Assembly assembly = Assembly.LoadFrom(pFileName); 
foreach (Type type in assembly.GetTypes()){ 
if (type.IsPublic){ 
if (!type.IsAbstract){   
Type typeInterface = type.GetInterface(pTypeInterface.ToString(), true); 
if (typeInterface != null){ 
try{ 
object plugin = Activator.CreateInstance(pluginInterfaceType); 

有沒有辦法在PHP翻譯呢?

什麼是最簡單和最安全的方法來實現這一點?

問候

回答

0

作爲一種動態語言,PHP使這變得容易很多。只要將實際的類名稱作爲字符串,就可以實例化它。然後你只需要檢查是否實例實現預期的接口:

$pluginClass = 'My_Plugin'; 
$instance = new $pluginClass(); 
if(!$instance instanceof My_Interface) { 
    throw new Exception(get_class($instance) . ' does not implement My_Interface'); 
} 

加載你應該autoloading classes in PHP讀了類。如果你想讓特定插件文件夾中的所有類都可用,只需要在該文件夾中包含任何* .php文件。

相關問題