You can also register CFCs as interceptors programmatically by talking to the application's Interceptor Service that lives inside the main ColdBox controller. You can access this service like so:
// via the controllercontroller.getInterceptorService();// dependency injectionproperty name="interceptorService" inject="coldbox:interceptorService";
Once you have a handle on the interceptor service you can use the following methods to register interceptors:
registerInterceptor() - Register an instance or CFC path and discover all events it listens to by conventions
registerInterceptionPoint() - Register an instance in a specific event only
Here are the method signatures:
public any registerInterceptor([any interceptorClass], [any interceptorObject], [any<struct> interceptorProperties='[runtime expression]'], [any customPoints=''], [any interceptorName])
public any registerInterceptionPoint(any interceptorKey, any state, any oInterceptor)
Examples
// register yourself to listen to all events declaredcontroller.getInterceptorService().registerInterceptor( interceptorObject=this );// register yourself to listen to all events declared and register new events: onError, onLogincontroller.getInterceptorService().registerInterceptor( interceptorObject=this, customPoints="onError,onLogin" );// Register yourself to listen to ONLY the afterInstanceAutowire eventcontroller.getInterceptorService().registerInterceptionPoint( interceptorKey="MyService", state="afterInstanceAutowire", oInterceptor=this );