Приспособления для создания нескольких обработчиков в одном модуле apache или наличия отдельных модулей для каждого обработчика - PullRequest
0 голосов
/ 24 августа 2010

Я пишу приложение, в котором есть куча обработчиков.Я пытаюсь понять, должен ли я упаковать эти обработчики в один и тот же модуль apache или иметь отдельный модуль для каждого обработчика.

Я согласен, что это общий вопрос и он будет зависеть от моего приложения, но я хотел бызнаю общие соображения, которые я должен сделать, а также компромиссы в каждом из подходов.

Будет очень хорошо, если кто-нибудь скажет мне преимущества / недостатки обоих подходов.

1 Ответ

0 голосов
/ 24 августа 2010

Вы не указали, должны ли все эти обработчики выполнять некоторые взаимосвязанные задачи или они будут работать независимо друг от друга.

Я бы хотел сохранить соответствующие обработчики в одном и том же модуле, а остальные в своем собственном модуле. Я считаю, что это облегчает настройку сервера (мы можем легко загружать / выгружать модуль по мере необходимости), и база кода также остается хорошо управляемой.

Например, предположим, что нам нужны два обработчика, которые совместно используют некоторые данные, тогда мы можем хранить их в одном модуле:

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 */ }
...