[Handel] [ANNOUNCE] Handel 0.99_02 Released

Christopher H. Laco claco at chrislaco.com
Tue Jun 6 14:55:26 CEST 2006


tom.kirkpatrick at virusbtn.com wrote:
> It seems that the vast majority of time is spent on the injection of the 
> Handel components:
> 
> If I comment out all the component injection code in Hanmdel::Storage, I 

Define "all injection code".... everything in
_configure_schema_instance(), or just the calls to load_components?


> can use My::Handel::Order in:
> 28.833u 0.132s 0:29.15 99.3%    1072+27519k 0+0io 0pf+0w
> 
> with that code left in, it takes:
> 102.245u 0.171s 1:43.30 99.1%   1071+34448k 0+0io 0pf+0w
> 
> And I don't even want any of them injected into my schemas!

But you do. You're subclassing Handel classes, that use constraints, and
default values, er go, the schema you request to use needs to be aware
of them, or functionality is lost. Without schema molesting of some
sort, interchangeable schemas would not happen at all, and everyone
would have to use the stock handel schema...always. I just haven't found
the right way...

> 
> I know Handel::Storage tries to detect if the components are needed or 
> not, but because My::Handel::Order subclasses Handel::Order, these 
> components are loaded by default... How can I remove them from my 
> subclass?


Right now, you can't. The plan is to make Cart/Order have an instance o
Handel::Storage, rather than be a subclass of Handel::Storage. When that
happens, you can create your own storage-fu, sans constraints/defaults
if you wish, and tell Cart/Order to use that instance, and not it's
default instance.

Unfortunately, that's a big change, and not one I'm going to start
before I leave.

The real problem is probably the C3 recalcs during load_components. I
imagine it's worse with a schema instance than it is with just a schema
class because there is much more classes going on behind the scenes.

If I can't fix it, I have to take the tact that Matt was talking about,
where compose_connection inserts a Handel base class into the schema
classes that does what the loaded_components tries to do.

Remember, it's a dev version. Use _01, and breath deeply. :-)

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: OpenPGP digital signature
Url : http://lists.rawmode.org/pipermail/handel/attachments/20060606/943b27d2/attachment.pgp 


More information about the Handel mailing list