Many of you using models in your ColdBox app are familiar with how easy WireBox makes it to use the Singleton Pattern for components that are only created once in the life of your app.
map(“myService”).to(“path.to.myService”).asSingleton();
or
component name=“MyService” singleton {}
This can also be a bit of a pain when you are working on the code inside your singleton objects. Any changes require you to re-create the singleton object which typically involves a reinit of the framework. ColdBox has a handy setting for you to use on your development environment called singletonReload.
wirebox = {
singletonReload = true
};
This setting causes WireBox to flush your singleton mappings on every request so your changes show up instantly without having to reinit the entire framework. Make sure this setting is always off in production!
Additional tip: Combine this setting with ColdBox’s environement detection to automatically turn singletonReload on for your development environment, but off for production.
More info here: http://wiki.coldbox.org/wiki/ConfigurationCFC.cfm#wirebox
PS: If using Ajax intensive applications beware that concurrency for reloading and flushing the singleton objects is not guaranteed.
Thanks!
~Brad
ColdBox Platform Evangelist
Ortus Solutions, Corp
E-mail: brad@coldbox.org
ColdBox Platform: http://www.coldbox.org
Blog: http://www.codersrevolution.com