我使用CodeIgniter MVC框架創建自己的腳本。現在,我希望用戶輕鬆修改網站功能並添加他們自己的內容,而無需修改我已經編寫的代碼。如何製作可插入的PHP腳本?
如何讓我的網站可插入?
編輯:用戶將是網站管理員。不是最終用戶。基本上就像drupal或joomla一樣。希望管理員能夠創建/添加插件來擴展站點功能。
我使用CodeIgniter MVC框架創建自己的腳本。現在,我希望用戶輕鬆修改網站功能並添加他們自己的內容,而無需修改我已經編寫的代碼。如何製作可插入的PHP腳本?
如何讓我的網站可插入?
編輯:用戶將是網站管理員。不是最終用戶。基本上就像drupal或joomla一樣。希望管理員能夠創建/添加插件來擴展站點功能。
有可能是一個更好的方式,特定於笨,但是這是我會做什麼:
首先,在你的代碼的各種「掛鉤點」創建函數。說一個名爲PreArticle
的函數,在您的代碼中調用,然後顯示文章。
允許用戶這樣寫代碼:
addHook_PreArticle('funcToCall');
function funcToCall(&$articleText) {
$articleText = str_replace('Hello', 'World', $articleText);
}
addHook_PreArticle
是你定義一個函數,這將傳遞的字符串添加到一些內部列表。然後當調用PreArticle
函數時,將執行這些函數中的每一個函數,並傳入您定義的任何適當的參數。
很多CMS的像Joomla和博客一樣WordPress的使用變量函數名:
$function="phpinfo";
$function();
您可以加載到這個陣列創建的可重寫功能列表。
這是使用觀察者模式的完美案例。 http://devzone.zend.com/article/5
當你說你希望你的網站能夠使用插件時,你想象那些插件做什麼樣的事情?如果我想爲您的網站編寫一個插件,創建一個允許任何人查看/更改網站數據庫中任何表格中的值的新頁面,那麼這是一個有效的插件嗎?如果沒有,爲什麼不;你的限制是什麼? – 2010-03-31 21:19:55
沒有限制。該插件將能夠從數據庫中檢索/刪除任何數據。 – 2010-03-31 21:24:00