使用不可能的助手,除非您在调用该addBenchmark
方法时手动刷新数组的内容。
问题出在以下几点。在Mage.php
您请求的帮助程序中存储在注册表中。在下一次调用时,将从注册表中检索完全相同的帮助对象,而不是新的。它仅在第一次调用助手时创建一个实例。
/**
* Retrieve helper object
*
* @param string $name the helper name
* @return Mage_Core_Helper_Abstract
*/
public static function helper($name)
{
if (strpos($name, '/') === false) {
$name .= '/data';
}
$registryKey = '_helper/' . $name;
if (!self::registry($registryKey)) {
$helperClass = self::getConfig()->getHelperClassName($name);
self::register($registryKey, new $helperClass);
}
return self::registry($registryKey);
}
您可以选择模型,因为getModel()
每次调用工厂方法时都会返回一个新实例。尽管在我看来,这是一个糟糕的编程案例,也会损害你的性能。
我会选择在拨打新电话时刷新最新数据addBenchmark
。如果您想将所有数据存储在帮助程序中以供以后处理,也许总是返回数组中的最新键?不过,那是选择和口味的问题,所以我将把这部分留给你。
希望这对您有所帮助!