我正在编写一个有很多处理程序的应用程序。 我试图看看我是否应该在同一个apache模块中打包这些处理程序,或者为每个处理程序配备一个单独的模块。
我同意这是一个通用的问题,并且取决于我的应用程序,但我想知道我必须做出的一般考虑以及每种方法的权衡。
如果有人能告诉我两种方法的优点/缺点,那将是非常好的。
答案 0 :(得分:0)
您尚未指定所有这些处理程序是否需要执行某些相互关联的任务,或者它们是否将彼此独立地工作。
我会将相关的处理程序保存在同一个模块中,其余部分保存在自己的模块中。我相信它使服务器的配置变得容易(我们可以根据需要轻松加载/卸载模块),代码库也可以很好地管理。
例如,假设我们需要两个共享一些数据的处理程序,那么我们就可以保留在同一个模块中:
static int my_early_hook(request_rec
*r) {
req_cfg *mycfg = apr_palloc(r->pool, sizeof(req_cfg));
ap_set_module_config(r->request_config,
&my_module, mycfg);
/* set module data */ }
static int my_later_hook(request_rec
*r) {
req_cfg *mycfg = ap_get_module_config(r->request_config,
&my_module);
/* access data */ }