我要整理一个小扩展名来启用 模板提示在全球范围下, ,但被卡住了试图重写 core/template.

课堂重写仅适用于通过Magento的一种方法实例化的课程工作(helper, getModel, getSingleton)。对于抽象和大量扩展的从类别类,您似乎留下了 local/Mage 覆盖。

两个问题:

  1. 有什么明智的避免方式 local/Mage 始终覆盖?
  2. 如果没有,您将如何在社区扩展中加入此类替代?
有帮助吗?

解决方案

1)您向社区提供的任何扩展都应在社区代码池之下。

2)你不应该,但是你可以,有时你必须因为 Demeter 在Magento 1中被忽略了很多。

几乎总是有一种覆盖需要的方法,包括使用反射 如Vinai的一段时间.

如果解决方案的缺点太多,则只需对班级定义的所有权。您可以做以下操作之一,只要用户知道:

  1. 在社区代码池中,提供法师下的修改定义| Varien | Zend Namepace适当。可能的担心是最终用户可能也这样做了。
  2. 如上所述,但在新的代码池中:预先将新的CodePool预先放置到引导程序包括使用路径 set_include_path(). 。缺点:更多 stat()由自动加载器引起的,您的包含路径操作将是不太明显的,因为它在引导程序之外。
  3. 如果可能 include()从您的命名空间下的非标准位置将其从非标准位置进行。

在这里听起来您的案例需要 - 有人会有一个想法。至于管理范围中的模板路径提示, 看到我的答案 甚至不需要PHP。

许可以下: CC-BY-SA归因
scroll top