为什么在模型中使用变量(MVC)?

时间:2010-08-27 06:23:06

标签: php joomla

我正在读Joomla大师! 1.5本书,我在Revue模型中注意到有这样的功能

// model
function getRevues() {
  $db =& $this->_db;
  if( empty($this->_revues) ) // ?????
  {
    $query = $this->_buildQuery();
    $limitstart = $this->getState('limitstart');
    $limit = $this->getState('limit');

    $this->_revues = $this->_getLimit($query, $limitstart, $limit);
  }
  return $this->_revues;
}

// view
....
revues =& model->getRevues();

为什么在类模型中使用_revues变量?如果我删除_revues变量并重写getRevues函数,如下所示:

function getRevues() {
  $db =& $this->_db;

    $query = $this->_buildQuery();
    $limitstart = $this->getState('limitstart');
    $limit = $this->getState('limit');

    $revues = $this->_getLimit($query, $limitstart, $limit);

  return &$revues;
}

2个功能有什么区别?

1 个答案:

答案 0 :(得分:2)

在第二个中,您始终执行数据库查询。在第一个中,您缓存结果(在$this->_revues中),这可能会提高应用程序的性能。因此,只有在第一次调用此方法时才会触发数据库。

相关问题