0

我正在查看我继承的一些代码。在所有模型类中——任何执行“选择”查询的方法都被声明为静态,而“插入”、“更新”、“删除”在同一个模型类中未声明为静态。

例如

require_once 'Zend/Db/Table/Abstract.php';

类 Model_Course 扩展 Zend_Db_Table_Abstract {

受保护的 $_name = '课程';
公共静态函数 getCoursesByFaculty($faculty_id)
{
   $courseModel = 新的自我();
   $select = $courseModel->select();
   $select->setIntegrityCheck(假);
   $select->from('course', 'course.*');
   $select->joinLeft('course_faculty', 'course.course_id = course_faculty.course_id');
   $select->order(array('title'));
   $select->where('faculty_id = '.$faculty_id);
   返回 $courseModel->fetchAll($select);
}
}

将这些方法声明为 static 是否有任何充分的理由/优势?

感谢您的输入

4

1 回答 1

0

我认为没有任何优势,而不是像 Modelclass::function() 那样轻松调用它顺便说一句,我找到了一些调整代码的方法

require_once 'Zend/Db/Table/Abstract.php'; /*Actually this require is not required if you configure your includePaths correctly*/

class Model_Course extends Zend_Db_Table_Abstract {

protected $_name = 'course';
public static function getCoursesByFaculty($faculty_id)
{

   $select = $this->select();
   $select->setIntegrityCheck(false);
   $select->from($this, 'course.*');
          ->joinLeft('course_faculty', 'course.course_id = course_faculty.course_id');
          ->order(array('title'));
          ->where('faculty_id = ?',$faculty_id);
   $rows = $this->fetchAll($select);
return (!empty($rows)) ? $rows : null;

}
于 2012-05-16T10:21:34.797 回答