tags:

views:

103

answers:

3

My company has haphazardly upgraded the production server of our website to CF9, and while we were relatively lucky with very few incompatibilities, I am running into one problem that over the last week has caused me a considerable amount of grief.

Our sites use the Coldbox framework with the Transfer ORM, with function inheritance through abstract objects. Previously in CF8, when I would cfdump an object, I could view all of my setters and getters that existed in the object. However, CF9 modified the cfdump function to dump only the metadata for the object. The new CF9 documentation states that there is a metainfo tag that when set as true, should dump inherited objects (like my setters and getters for my database columns), but in this instance, it does not work.

While ultimately this isn't a back-breaking problem, it's become a considerable pain for me as I don't have rote memorization of all the functions in these objects; I'll be looking to dump a function because I know what I'm looking for but don't quite remember the name, only to find that it's not being dumped because of the way it's inherited from Transfer. I've tried the following things so far as solutions without any luck:

cfdump metainfo=true Creating dump function in the abstract decorator creating a dump function in the base decorator Creating dump functions in defined override decorators

We're using the latest versions of Coldspring and Transfer, and Coldbox 2.6.4. Any insight as to workarounds or resolutions would be appreciated.

A: 

how about creating a dump function that does this

<cfdump var="#myobject#" label="built-in dump">
<cfdump var="#getMetaData(myobject)#" label="object metadata">

getMetaData() would give you back your getters and setters

marc esher
This too does not work; I can't tell if getMetaData() is returning anything more then metainfo="yes", but it isn't returning the database record setters and getters in the BO, which is what I'm most worried about. Even if it did work, this would have been exponentially more difficult to use.
KeRiCr
+4  A: 

If you're not getting cfump to do it for you, first thing to do is file a bug at http://cfbugs.adobe.com/cfbugreport/flexbugui/cfbugtracker/main.html

The next thing I would do is use the Component Browser in a separate tab to keep an always ready copy of your full component documentation ready to use:

http://[yoursite]/CFIDE/componentutils/componentdoc.cfm

Faster than cfdump, save, reload, check, undo, save, retest. The component docs should show you all of your inherited methods.

Daniel Short
Since I've posted this, I've done a little more research and apparently the new dump function is working as designed; a bug report was already submitted to Adobe and developers have responded saying that they'll be fixing it to work like it did in CF8. I'll try setting up the component browser and see how that works. Thanks for the advice.
KeRiCr
+1  A: 

if your still really want the old functionality back and you happen to have a CF8 install somewhere CFDUMP was implemented as a custom tag internaly so you grab the old one from CF8 and port it into your cf9 install.

just copy /WEB-INF/cftags/dump.cfm and rename it as you go..

LucasS
This is a novel idea, but doesn't appear to work. Using the CF8 dump file doesn't generate any output in CF9.
KeRiCr