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.cfccomponent extends="coldbox.system.ioc.config.Binder" {​function configure(){wirebox = {// DSL Namespace registrationscustomDSL = {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.cfccomponent {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 CFCproperty name="funky" inject="ortus:funkyObject";​// map it in your WireBox Bindermap("Luis").toDSL("ortus:funkyObject");
Injectors allow you to register custom DSLs at runtime by using the registerDSL()
method on any injector.
// Register Custom DSLcontroller.getWireBox().registerDSL( namespace="javaloader", path="app.model.JavaLoaderDSL" );