Comment on page
Registering a Custom DSL
To register a custom namespace in WireBox, place the following configuration in the
wirebox
struct defined within the configure()
method of your WireBox binder CFC. in a ColdBox app, this is /config/WireBox.cfc
. Alternatively, you can use the mapDSL()
call in the configure()
method./config/WireBox.cfc
component extends="coldbox.system.ioc.config.Binder" {
function configure(){
wirebox = {
// DSL Namespace registrations
customDSL = {
ortus = "path.model.dsl.MyDSL"
}
};
// Or here...
mapDSL("ortus","path.model.dsl.MyDSL");
}
}
If you want to register a custom DSL namespace from a module, you can make the same call via the
binder
reference that is provided to your ModuleConfig.cfc
.ModuleConfig.cfc
component {
function configure() {
binder.mapDSL("ortus","path.model.dsl.MyDSL");
}
}
Now I can use the
ortus
DSL Namespace in my mappings DSL and even my annotations, isn't that cool!// inject it into a CFC
property name="funky" inject="ortus:funkyObject";
// map it in your WireBox Binder
map("Luis")
.toDSL("ortus:funkyObject");
Injectors allow you to register custom DSLs at runtime by using the
registerDSL()
method on any injector.// Register Custom DSL
controller.getWireBox()
.registerDSL( namespace="javaloader", path="app.model.JavaLoaderDSL" );
Last modified 1yr ago