我来自PHP / Laravel背景,但我的团队倾向于将Node.js(和风帆)用于我们的下一个项目,这是一个针对学者的合作工作室。但是,在我采取行动之前,我有一个关于为node.js应用程序创建laravel样式服务提供程序(或wordpress样式插件)的最佳实践的问题。
在laravel 4.1中加载服务提供程序时,会在某一点加载该类,调用boot()方法,并且提供程序可以" hook"进入在运行时触发的事件。服务提供者列表是从配置文件中的数组中提取的(尽管从数据库获取它们就像使用wordpress一样容易)。
基本上,我正在寻找的是这个PHP代码的Node.js等价物:
// Get an array of installed plugins from a config file (or database)
$exts = require_once 'config/installed_plugins.php';
/*
* The $exts array looks like this $ext['class_name'] = '/plugin/file/path.php'
* and each plugin file is a class with a boot() method that registers events
* with callbacks
*/
// Iterate and boot each plugin
foreach ($ext as $class=> $path) {
require $path;
$c = new $class();
$c->boot(); // Now this plugins events have been registered
}
显然这个伪代码有很多安全漏洞,不适合生产,但我认为这是我的观点。
我知道(并且喜欢)Javascript的事件驱动性质,所以我想用Node.js很容易实现类似的东西,但是我无法找到加载服务提供者的地方或方式并允许他们挂钩执行。
答案 0 :(得分:1)
js-plugins 是基于扩展点的开放式插件框架。
它受到 Eclipse 插件系统的启发,我希望它类似于你所搜索的内容:
js-plugins
来管理插件package.json
中的特殊部分来描述它提供的内容。package.json
)