On Thu, 7 Jun 2007, Matt S Trout wrote:

I'm not fond of any magic global if I can possibly avoid it - I find it
tends to encourage tight coupling of code and action at a distance and
makes testing and debugging messy.

I agree. A singleton is basically a _very_ thin mask for a global.

I prefer anything a method call needs to have been either (a) passed to the
object when it was constructed or (b) passed to the method as it's called.

Basically, what Catalyst seems to have is a sort of listener type of pattern, but listening is implicit rather than explicit. It's a little weird and magical, but I think it's better than a singleton. I'm not sure it's the _best_ solution, as it still seems a little too arcane for my tastes.

Also, the docs for this feature could be clearer. I've never quite grokked what makes Catalyst decide to look for this method in a class. Is it simply _any_ class that's passed in the import list to "use Catalyst"?

The docs refer to "a Catalyst component", but this isn't really well-defined. I know it includes models, views, and controllers, but are plugins also components?

Also, I know weaken() came up in this discussion. It'd be good if the docs addressed exactly when this is needed and give an example.


-dave

/*===================================================
VegGuide.Org                        www.BookIRead.com
Your guide to all that's veg.       My book blog
===================================================*/

_______________________________________________
List: Catalyst@lists.rawmode.org
Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.rawmode.org/
Dev site: http://dev.catalyst.perl.org/

Reply via email to