If you really like routing (you’d find that really funny if you’re Australian) and want to enforce their use in all linkTo(), urlFor() and startFormTag() function calls.. Do as I do..
Put the function below into your /controllers/Controller.cfc
<!--- /controllers/Controller.cfc --->
<cffunction name="urlFor" access="public" output="false" hint="ensure routes are used for all urls">
<cfif ! StructKeyExists(arguments, "noroute") && ! ( (StructKeyExists(url, "controller") && url.controller == "wheels") || StructKeyExists(arguments, "url") )>
<cfif ! (StructKeyExists(arguments, "route") && Len(arguments.route) gt 0)>
<cfthrow message="Please use a route rather than an action.. Thanks!">
</cfif>
</cfif>
<cfreturn core.urlFor(argumentCollection=arguments)>
</cffunction>
</code>
This overrides, the core urlFor() method, checking for the existence of a route argument.. UNLESS, the controller is “wheels” which probably means you’re using the test framework or managing a plugin. There is also a way to bypass the route nazi.. by using the noroute=true arguments.
Happy routing.. Teehee!