This weekend a reader asked me an interesting question about ColdFusion mappings. Imagine the following two mappings:
- Mapping /org points to /Webserver/Webroot
- Mapping /org/foo points to /projects/foo.com
He was curious to know if this would work right. The second mapping looks to be under org, but really points to a completely different path. I didn't know the answer to this. Every single mapping I've used in the past has always had a simple name, like /org or /foo.
I whipped up a quick test with two mappings named like the examples above. I put the same named CFC in each, but with different methods. I then wrote a quick script:
<cfset test = createObject("component","a.test")> <cfdump var="#test#"> <cfset test = createObject("component","a.b.test")> <cfdump var="#test#">The results showed that there was no problem having mappings with similar names in completely different folders. ColdFusion treats the mapping name as just a simple string. The fact that one was a and one was a/b didn't imply anything special to the server. The problem - though - would be that if someone put a physical folder named "b" under the folder that my "a" mapping pointed to - there would be a conflict. Which would win? The mapping. I would definitely recommend having mapping names that did not match up like the examples aboe.