我正在爲關鍵字研究構建一個網絡應用程序。主要是它需要一個關鍵字,它使用它來創建curl請求,並解析數字,然後存儲在mysql表中。 curl請求將用於檢索yahoo的結果數量,該關鍵字的diggs數量等。是否有任何PHP框架來建立一個具有插件功能的Web應用程序?
所以我想以某種方式對它進行編碼以使用插件(一個用於雅虎,另一個用於digg等) )。
有沒有任何PHP框架可以幫助我做到這一點?
我正在爲關鍵字研究構建一個網絡應用程序。主要是它需要一個關鍵字,它使用它來創建curl請求,並解析數字,然後存儲在mysql表中。 curl請求將用於檢索yahoo的結果數量,該關鍵字的diggs數量等。是否有任何PHP框架來建立一個具有插件功能的Web應用程序?
所以我想以某種方式對它進行編碼以使用插件(一個用於雅虎,另一個用於digg等) )。
有沒有任何PHP框架可以幫助我做到這一點?
框架不處理這樣的事情。你需要以插件的方式進行編碼。
以下情形將允許你在插件的方式代碼:
比方說我們在網站的根目錄,並在數據庫中的表稱爲插件具有以下結構的目錄稱爲插件(ID,姓名,啓用路徑)
現在,您需要爲您的插件的接口。這樣所有插件將具有相同的基本結構。
/**
* FILE: /plugins/PluginInterface.php
*
* Sample Interface
*/
interface iPlugin{
/**
* Tests if plug-in can be executed
*/
function test();
/**
* Prepared plug-in for execution
*/
function prepare();
/**
* Executes plug-in logic and returns count of somethings
*/
function execute();
}
/**
* FILE: /plugins/PluginExample.php
*
* Sample Plug-in
*/
class PluginExample implements iPlugin{
public function execute() {
}
public function prepare() {
}
public function test() {
}
}
現在您需要爲PluginExample插入數據庫記錄。
INSERT INTO plugins (id, name, enabled, path) VALUES (1, 'Example', 1, 'PluginExample.php')
最後一點,你需要控制的somekind的加載所有啓用插件從數據庫中(得到的路徑)和創建對象並執行。像這樣
function loadAndExecutePlugins() {
$query = "select * from plugins where enabled = 1";
$plugins = 'array of objects from query 1';
if ($plugins) {
foreach ($plugins as $plugin) {
//
$class = $plug->path;
include_once "/plugins/$class";
// Class is using interface, so you know what methods to call
$plug = new $class();
if ($plug->test()) {
$plug->execute();
}
}
}
}
PHP Fat-Free Framework已經有一個你可以使用的雅虎插件。儘管Digg插件不存在,但應該很容易在雅虎插件之後對其進行構圖。看看代碼。
謝謝,我發現這個答案太有用http://stackoverflow.com/questions/42/best-way-to-allow-plugins-for-a-php-application,但你的代碼更容易理解我。 – jarkam 2010-09-05 05:42:05