On Tue, Mar 02, 2010 at 05:08:21PM -0800, David E. Wheeler wrote:
> Howdy,
> 
> I've just committed r13835, which documents Callbacks. Yay! A few notes:

Great. Thanks!

> * Tim, you earlier said:
> 
> > I could arrange for Callbacks to only apply to methods called by the
> > applicationi, and not to 'nested calls'. That's a fairly major change
> > after this length of time but given the limited use Callbacks have had,
> > and the lack of documentation, it's not out of the question.
> > 
> > The downside is that to intercept all fetched rows in a general way
> > (like some kind of plugin utility module might want to do) you now have
> > to add callbacks for 7 $sth fetch* methods and 6 $dbh select* methods.
> > 
> > Is that really preferable?
> 
> And I replied:
> 
> > Well, yes. But if there were 'fetch*' and 'select*' keys that could go to 
> > all of them at once, that would be cool, too.
> 
> I don't know if you've changed anything here.

Nope. No changes there.

> Even earlier, you wrote:
> 
> > If you're applying a callback to the "fetch" method and then your code
> > calls fetchrow_hashref, for example, how do you know if the driver's
> > fetchrow_hashref() method calls fetch() or fetchrow_arrayref()?
> > 
> > The fetch and fetchrow_arrayref method are typically aliased by the
> > driver, but they're two separate methods from the DBI dispatcher's point
> > of view.
> > 
> > Applying the same callback to both is a reasonable approach.
> 
> I'm not sure what you decided to do about this, either. But I do think
> that whatever side-effects of such dispatch there are should be
> carefully documented as well.
> 
> * I tried to include some useful examples, but one is DBD::Pg-specific
> and another is DBD::mysql-specific. Hope that's okay.
> 
> * I didn't mention anything about the future possibility of
> post-method-call callbacks or an OO interface for setting up
> callbacks.
> 
> I look forward to your edits and comments, and let me know if I can
> help with anything else for this release.

I was tempted to leave "The cool thing is" but opted to drop it as it
doesn't match the tone of the rest of the docs - although they are
rather dry :)

I've made assorted edits and added some extra info. A sanity check would
be most welcome.

Thanks again David!

Tim.

Reply via email to