It's not about being "beaten to death" for doing something "wrong" --
just that doing this kind of introspection at runtime does not seem to
scale terribly well. So, if your system is not concerned about
scalability/performance as primary concerns (and we too often take for
granted that those things are paramount when the reality is that most
web apps don't actually need to scale or squeeze milliseconds) then
don't worry about it, but do realize that it could become a concern.
Daniel Schmid wrote:
2. It adds to the metadata for a CFC
This can be useful for documentation purposes or tools that depend
on introspection however I don't advise building systems that perform
dynamic introspection (at runtime) since they often don't scale very
well.
maybe I get beaten to death, but I heavily use <cfproperty> for
instrospection on a CMS system (not Farcry, even if I know it does it as
well)
my CFC content objects look like this...
<cfcomponent displayname="ArticleObject" hint="This is the article">
<cfproperty name="title" type="string" default="New Article"/>
<cfproperty name="subtitle" type="string" default="" />
<cfproperty name="teaser" type="longchar" default="" />
<cfproperty name="publishstart" type="date" default="" />
....
with getMetaData() I get all the properties and build a generic CRUD
persistance layer around it. works since cf 6.0 like a charm...
the use of cfproperty makes it somehow easy - otherwise I would have to
write properies down in a xml-file (like hibernate does)
regards
daniel www.danielschmid.name
Sean Corfield schrieb:
On 11/7/05, Ung, Seng <[EMAIL PROTECTED]> wrote:
I am having a very tough time to understand what cfproperty does.
<cfproperty> does two things:
1. It describes public instance data in a CFC that is intended to be
the return type of a web service (or, in some cases, passed into a web
service).
Since CFML is essentially a typeless language, the <cfproperty> tag
provides information needed by the web service libraries to map
between a CFC and a strongly typed structure. Really this is just a
way to provide structs in CFML that have enough information associated
with them (metadata) to allow interaction with strongly typed web
services.
2. It adds to the metadata for a CFC
This can be useful for documentation purposes or tools that depend
on introspection however I don't advise building systems that perform
dynamic introspection (at runtime) since they often don't scale very
well.
In other words, most people actually won't need to use <cfproperty>.
If you're calling a web service that returns a strongly typed
structure containing two elements (C++ syntax):
struct Result {
double amount;
String currency;
}
The equivalent CFML code would be:
Result.cfc:
<cfcomponent>
<cfproperty name="amount" type="numeric"/>
<cfproperty name="currency" type="string"/>
</cfcomponent>
The returned object would be used like this:
<cfset result = ws.callMethod() />
<cfset amount = result.amount />
<cfset currency = result.currency />
(Caveat: all untested code off the top of my head - errors & omissions
excepted :)
--
Sean A Corfield -- http://corfield.org/
Got frameworks?
"If you're not annoying somebody, you're not really alive."
-- Margaret Atwood
----------------------------------------------------------
You are subscribed to cfcdev. To unsubscribe, send an email to
cfcdev@cfczone.org with the words 'unsubscribe cfcdev' as the subject
of the email.
CFCDev is run by CFCZone (www.cfczone.org) and supported by CFXHosting
(www.cfxhosting.com).
An archive of the CFCDev list is available at
www.mail-archive.com/cfcdev@cfczone.org
----------------------------------------------------------
You are subscribed to cfcdev. To unsubscribe, send an email to
cfcdev@cfczone.org with the words 'unsubscribe cfcdev' as the subject of
the email.
CFCDev is run by CFCZone (www.cfczone.org) and supported by CFXHosting
(www.cfxhosting.com).
An archive of the CFCDev list is available at
www.mail-archive.com/cfcdev@cfczone.org
----------------------------------------------------------
You are subscribed to cfcdev. To unsubscribe, send an email to
cfcdev@cfczone.org with the words 'unsubscribe cfcdev' as the subject of the
email.
CFCDev is run by CFCZone (www.cfczone.org) and supported by CFXHosting
(www.cfxhosting.com).
An archive of the CFCDev list is available at
www.mail-archive.com/cfcdev@cfczone.org