[Framework-Team] Can I merge plone.memoize and plone.app.layout?
wichert at wiggy.net
Sun Dec 3 13:08:01 UTC 2006
Previously Martin Aspeli wrote:
> Hi guys,
> Following discussions with Whit, Alec and Rocky on the channel last
> night, and from the lists before, I've created and checked in two packages:
> - plone.memoize: contains Whit's memojito memoization decorators (in
> plone.memoize.instance), and a variant of it that memoizes values in the
> request for views (plone.memoize.view).
> - plone.app.layout: contains a view viewlet manager definitions
> (plone.app.layout.viewlets) and a set of views that contain several of
> the values from global_defines, but cleaned up
> (plone.app.layout.globals). These are memoized using the view
> memoization in plone.memoize.
> That means, that to get hold of the portal_membership tool in a
> template, say, I could write context/@@plone_tools/portal_membership.
> The first time any template or code (say, in a view class) did that, it
> would do getToolByName to find portal_membership, and on subsequent
> times, it would be memoized tied to the request (so even if you looked
> up @@plone_tools again, you'd get the same memo, so long as it was in
> the same request).
> There are three views: @@plone_tools (contains various tools);
> @@portal_state (contains information about the portal as a whole,
> including the current authenticated member, the is_anonymous flag, the
> portal_url etc); and @@context_state (contains information about the
> context, e.g. pretty title, workflow state, actions dict etc.
> Obviously that granularity could change, but I found that it made sense
> to have more than one (to avoid the "dumping ground" problem) but not
> too many (to avoid having to remember lots of them).
> Now, what I'd like to do tonight (Wiggy?) is:
> - Add these to the bundles
> - Make Products.CMFPlone.browser.plone.cache_decorator an alias for
> plone.memoize.instance.memoize, and derecate
> - Make various things that use @cache_decorator use @memoize directly.
> - Add the viewlet managers to main_template
> - Change @@plone's globalize() to use the new memoized views where
> appropriate; at this point we can start formally deprecating
> global_defines if we wish.
> - Change various places I can think of to use the @@plone_tools,
> @@context_state and @@portal_state views; obviously this would be an
> evolutionary thing, but I'd really rather get it in ASAP so people can
> start using it.
> Is this OK?
a definite +1
Wichert Akkerman <wichert at wiggy.net> It is simple to make things.
http://www.wiggy.net/ It is hard to make things simple.
More information about the Framework-Team