FW: [Dbix-class] Filtering module
Matt S Trout
dbix-class at trout.me.uk
Thu Nov 13 19:47:21 GMT 2008
On Wed, Oct 22, 2008 at 09:26:45AM -0500, Todd Rinaldo wrote:
> I too would like to see inflate be a little more transparent. I
> haven't had to deal with it in a month or so, but I know that in some
> DBIC calls, you get the raw value of the column and in others, you get
> the inflated value. Vice-versa on the write. It's my humble opinion
> that if someone sets up an inflate/deflate on a column, that should be
> the interface. This has bitten us a couple of times, mostly with
> DateTime objects where we made the assumption that get_column (I
> think) would give us an inflated value, but instead gives us the raw
> value.
That's a stupid assumption. It's documented to always return the actual
-column- value. It's a bit of internals that are exposed in case you need
it, *not* part of the main interface for your objects.
The main interface for your objects is the accessors. Use them.
$obj->get_column($col); # COLUMN VALUE
$obj->$col; # ATTRIBUTE VALUE
If I could time travel, I'd make it _get_column so this fact was obvious.
But too much code now relies on it, sadly.
I suspect when we create a new, cleaner row object interface, perhaps as a
factor out in the 09 process, things like get_column will simply go away so
people don't keep making this mistake.
--
Matt S Trout Need help with your Catalyst or DBIx::Class project?
Technical Director http://www.shadowcat.co.uk/catalyst/
Shadowcat Systems Ltd. Want a managed development or deployment platform?
http://chainsawblues.vox.com/ http://www.shadowcat.co.uk/servers/
More information about the DBIx-Class
mailing list