Now let's build the same thing but using ColdFusion ORM and our Virtual Service Layer approach, in which we will use a service layer but virtually built by ColdBox. This will most likely give you 80% of what you would ever need, but in case you need to create your own and customize, then you would build a service object that extends or virtual or base layer.
You will first make sure your contacts
datsource exists in the Administrator and then we can declare our ORM settings in our Application.cfc
These are the vanilla settings for using the ORM with ColdBox. Make sure that flushAtRequestEnd
and autoManageSession
are set to false as the ORM extensions will manage that for you.
In this example, we also use dbcreate="update"
as we want ColdFusion ORM to build the database for us which allows us to concentrate on the domain problem at hand and not persistence. You also see that we add our own eventHandler which points to the extension's event handler so we can make Active Entity become well, Active!
Now open your ColdBox.cfc
and add the following to activate ORM injections inside of your configure()
method.
That's right, go to the handler now, no need of data layers or services, we build them for you!
Now spice it up
Here are the views as well, isn't it awesome that the views stay the same :), that means we did a good job abstracting our model and controllers.
Check out our awesome html
helper object. It can even build the entire forms according to the Active Entity object and bind the values for you!
Let's use CommandBox to build it:
Then spice it up with the validation constraints