>Yeh, I'd go with that. Not overkill at all and good thinking. If you also >have mini app specific checks, you could extend the 'global' cfc too. > >And apologies for souding like a patronising git, I misread you as not >having used cfcs in an app before ;)
Lol, didn't take it that way at all. I just didn't want my initial post to be swamped in detail :-). I've actually been using CFC's for a few years now but I've been unclear as to if I'm using them in the "right" way. I appreciate that these things aren't black and white but I just want to get an opinion on my approach. In my head I know that I should be using CFCs as a tool for common/specific tasks but then I look at the example(s) below and think a) it's overkill and more code and b) I'm breaking a simple process down into two separate parts which might not be needed this way anyway! No CFC approach: ---------------- <cfif not session.username)> <cflocation url="login.cfm" addtoken="no" /> </cfif> RESULT: Simple, three lines, job done....but no not modular and results in duplication. CFC approach (1): ----------------- // Get CFCs UserManager = createObject("component","com.userManager").init(); AppManager = createObject("component","com.appManager").init(); // Check that the username exists in a session (returns boolean). userChecker = IWSCFCManager.getUserName(); // No username. Send them to the login page if(not userChecker){ appManager.getLogingPage(); } RESULT: Process is now in two separate areas so good that it's modular and can be cached but it's more external files to deal with. or I guess all this could be far more generic. CFC approach (2) - More generic CFC approach: --------------------------------------------- // Get CFC AppManager = createObject("component", "com.appManager").init(); // Check that the user exists in the session scope using a generic variable checker. This method takes two parameters, the scope and which variable to look for. Returns boolean. userChecker = AppManager.getVariable("session",username); if(not userChecker){ // This method does a redirect appManager.redirectUser("login.cfm"); } RESULT: One CFC and could use this for all kinds of things.... .... then again I could just use a structKeyExists :-)... and oh look!!! I'm back to another way of coding CFC approach 1 (ARRGGGHHH!!!) There are many paths but I'm just concerned that I make the wrong one for the wrong reasons :-) @Gerald - Thanks for all those links. OO concepts are something I've never used but I've got a good understanding of how it works in principle. I do aim to keep everything encaplusated in my CFCS and I'm keen to look at things like ColdSpring at some point soon. When I get two "geeky" minutes :-) Thanks again for the feedback, James ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| Adobe® ColdFusion® 8 software 8 is the most important and dramatic release to date Get the Free Trial http://ad.doubleclick.net/clk;192386516;25150098;k Archive: http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:303020 Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4