Coldfusion 9, Coldbox, Coldspring, Transfer, and the missing functions in CFDump
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:
cfdum开发者_Go百科p 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.
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.
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..
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
精彩评论