I think I just discovered my favorite block of code ever. As such, this is a post so that I remember how to do this when I need to do it again, your may not be so impressed.
I was trying to figure out a terse, reusable way of making sure that my application root was mapped to my application name, and that my customtags folder be mapped as a custom tag folder. It had to work with inherited sub application.cfc’s and deal with the fact that my application might not be in the root. I came up with this:
<cfset this.name = “APPNAME”
/>
<cfset this.mappings[“/#this.name#”] = getDirectoryFromPath(getCurrentTemplatePath()) />
<cfset This.customtagpaths = “#getDirectoryFromPath(getCurrentTemplatePath())#customtags”/>
Another idea to possibly make this a bit cooler. You can even make the application name dynamic – perhaps based on a hash of the path. That way you can install N copies of the same app – at different locations – and not even need to change the app name. Just drop it in and it works.
LikeLike
Great point, Ray. I only recently discovered that technique/pattern. You’re right, it would be a great addition to this.
LikeLike