Web applications 是否有任何php框架可以构建具有插件功能的web应用程序?
我正在构建一个用于关键字研究的web应用程序。它所做的主要工作是获取一个关键字,并使用它发出curl请求,然后解析数字,然后将其存储在mysql表中。例如,curl请求将用于检索yahoo结果数、该关键字的diggs数等 所以我想用某种方式编写代码,使用插件(一个用于yahoo,另一个用于digg,等等)Web applications 是否有任何php框架可以构建具有插件功能的web应用程序?,web-applications,frameworks,php,Web Applications,Frameworks,Php,我正在构建一个用于关键字研究的web应用程序。它所做的主要工作是获取一个关键字,并使用它发出curl请求,然后解析数字,然后将其存储在mysql表中。例如,curl请求将用于检索yahoo结果数、该关键字的diggs数等 所以我想用某种方式编写代码,使用插件(一个用于yahoo,另一个用于digg,等等) 有什么php框架可以帮助我做到这一点吗?框架不会处理这样的事情。您需要以插件的方式对其进行编码 以下场景将允许您以插件方式编写代码: 假设我们在站点的根目录中有一个名为plugins的目录,在
有什么php框架可以帮助我做到这一点吗?框架不会处理这样的事情。您需要以插件的方式对其进行编码 以下场景将允许您以插件方式编写代码: 假设我们在站点的根目录中有一个名为plugins的目录,在数据库中有一个名为plugins的表,其结构如下(id、name、enabled、path) 现在您需要为插件创建一个接口。这样所有插件都将具有相同的基本结构
/**
* 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')
最后,您需要某种控制器,从数据库(get的路径)加载所有启用的插件,然后创建对象并执行它们。像这样
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();
}
}
}
}
已经有一个雅虎插件,你可以使用。虽然Digg插件不存在,但在Yahoo插件之后,应该很容易对其进行模式化。请看一下代码。谢谢,我发现这个答案也很有用,但您的代码对我来说更容易理解。