What you need is to implement a factory method design pattern to create the handlers.
class HandlerFactory {
public function make($mode) {
switch(strtolower($mode)) {
case 'kernel': return new KernelRequestHandler();
case 'curl': return new CurlRequestHandler();
}
}
}
And, yes, you need to add a case for every new handler you make.