Phương pháp được khuyến nghị truy cập vào các tiện ích liên tục Plone là gì và tại sao?getToolByName() và những người khác
getToolByName (bối cảnh, "portal_url")
mua trực tiếp: context.portal_url
Itools giao diện
, vv
Phương pháp được khuyến nghị truy cập vào các tiện ích liên tục Plone là gì và tại sao?getToolByName() và những người khác
getToolByName (bối cảnh, "portal_url")
mua trực tiếp: context.portal_url
Itools giao diện
, vv
Tôi nghĩ rằng câu trả lời nằm trong mã số getToolByName
chính nó (http://svn.zope.org/Products.CMFCore/trunk/Products/CMFCore/utils.py?view=markup). Đó là phương pháp thực hiện điều này:
getUtility
và bao gồm nó trong một ngữ cảnh (mà dường như là một điều tốt đối với tôi)vì vậy, phương pháp duy nhất "để cai trị tất cả" có vẻ là: getToolByName
Nhưng, như @keul nói, có cũng là bộ nhớ đệm có liên quan, và tìm kiếm ở đây (http://collective-docs.readthedocs.org/en/latest/misc/context.html#itools-interface) rõ ràng là sử dụng giao diện ITools, khi nó không thành công do các công cụ chưa triển khai giao diện đó, nó nhanh hơn.
Đối với những lý do trên, cuối cùng tôi muốn đề nghị:
(như việc mua lại trực tiếp đã được xét xử bởi các getToolByName, nếu nó không thành công, bạn sẽ không có nhiều tài sản)
Tôi tự hỏi tại sao getToolByName không truy vấn ITools trước. –
vì 'getToolByName' là một phương thức trong gói CMFCore trong khi' ITool' là một giao diện trong 'plone.app.layout'. Như tên miền của nó chỉ ra, p.a.layout nó là một gói cấp cao hơn và nó là Plone cụ thể. –
Việc sử dụng Itools các tiện ích phải là phương pháp tốt nhất, vì chúng được lưu trong bộ nhớ cache. Tuy nhiên điều này đôi khi đã cho tôi vấn đề (liên quan đến công cụ portal_membership, nhưng tôi không nhớ chi tiết) vì vậy trong trường hợp hiếm hoi tôi chuyển sang getToolByName. Điều cuối cùng là việc mua lại trực tiếp.
Và các phương pháp plone.api mới nhất - http://readthedocs.org/docs/ploneapi/en/latest/utilities.html#get-tool –
I vẫn xem xét plon e.api một chút experimentetanl và do đó không khuyến khích ... tôi cũng muốn biết cái nhìn sâu sắc đằng sau câu trả lời –