の「カスタム変数」機能の値
System -> Custom Variables
私が見る限り、特別にキャッシュされていません。それがあなたのクライアントの問題を解決するのに役立つなら、私はあなたがそれらを使うのを止めさせません。他のものは、より早くパフォーマンスの問題を引き起こします。
主な場所を見ると、Magentoはこれらの変数を使用しています
#File: app/code/core/Mage/Core/Model/Email/Template/Filter.php
public function customvarDirective($construction)
{
$customVarValue = '';
$params = $this->_getIncludeParameters($construction[2]);
if (isset($params['code'])) {
$variable = Mage::getModel('core/variable')
->setStoreId($this->getStoreId())
->loadByCode($params['code']);
$mode = $this->getPlainTemplateMode()?Mage_Core_Model_Variable::TYPE_TEXT:Mage_Core_Model_Variable::TYPE_HTML;
if ($value = $variable->getValue($mode)) {
$customVarValue = $value;
}
}
return $customVarValue;
}
次の連鎖メソッド呼び出しがロードされていることがわかります
$variable = Mage::getModel('core/variable')
->setStoreId($this->getStoreId())
->loadByCode($params['code']);
したがって、このレベルのコードにはキャッシュがないことがわかります。core/variable
モデルクラスファイルにジャンプする場合
#File: app/code/core/Mage/Core/Model/Variable.php
public function loadByCode($code)
{
$this->getResource()->loadByCode($this, $code);
return $this;
}
メソッドにキャッシュロジックがないことがわかりますloadByCode
。ファイル全体をすばやくgrepすると、文字列「cache」についての言及もありません。
次に、モデルリソースを見ると
#File: app/code/core/Mage/Core/Model/Resource/Variable.php
public function loadByCode(Mage_Core_Model_Variable $object, $code)
{
if ($result = $this->getVariableByCode($code, true, $object->getStoreId())) {
$object->setData($result);
}
return $this;
}
ここでも、特別なキャッシュロジックはありません。また、文字列「cache」のこのファイルをgrepすると、何も表示されません。
最後に、空のコントローラーアクションで次のコードを実行すると、変数値がダンプされます。
public function indexAction()
{
$values = Mage::getModel('core/variable')
->setStoreId(1)
->loadByCode('abc');
var_dump($values->getData());
exit;
}
これを行う場合は、別のツールを使用してcore_variable_value
テーブルを更新し、ページを再読み込みすると、値が更新されていることがわかります。
これはすべて、値がキャッシュされていないことを示しています。