首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >getToolByName()诉其他人

getToolByName()诉其他人
EN

Stack Overflow用户
提问于 2012-03-19 06:05:30
回答 2查看 1K关注 0票数 6

访问Plone持久实用程序的推荐方法是什么?为什么?

  • getToolByName(context,"portal_url")
  • direct采集: context.portal_url
  • ITools接口

等。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-19 13:26:53

我认为答案在getToolByName本身的代码中( http://svn.zope.org/Products.CMFCore/trunk/Products/CMFCore/utils.py?view=markup )。这种方法是这样做的:

  • 作为第一次尝试,它试图通过查找与getUtility的接口并将其包含在上下文中(对我来说似乎是件好事)来获得所需的工具,
  • 作为后盾,它试图直接从源上下文

获取该工具。

因此,“控制它们的唯一方法”似乎是:getToolByName,但是,正如@keul所说,缓存也涉及到,在这里查看( http://collective-docs.readthedocs.org/en/latest/misc/context.html#itools-interface )可以清楚地看到,使用ITools接口时,如果它不会因为尚未实现该接口的工具而失败,它就会更快。

基于上述原因,最后我建议:

(faster)

  • getToolByName
  1. ITools (更安全)

(由于getToolByName已经尝试过直接收购,如果它失败了,你就不会有更多的财富)

票数 5
EN

Stack Overflow用户

发布于 2012-03-19 10:30:20

ITools实用程序的使用必须是最好的方法,因为它们是缓存的。然而,这有时会给我带来一些问题(与portal_membership工具有关,但我不记得细节),所以在这种罕见的情况下,我转而使用getToolByName。最后是直接收购。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9765706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档