1

抱歉,如果这已经得到解答,我是 PHP 中的 OOP 新手。我正在尝试构建一个用于教育和测试目的的 mvc,并增加我对它的了解。我被困在某一点上,无法弄清楚。我确定这是一个简单的解决方案,但我不知道查找它的正确术语/单词是什么。

如果答案已经存在,请告诉我。

这是我正在尝试做的事情:

class Load {
  public function __construct(){
  }

  public function model($file_name){
    include($file_name.'.php');
  }
}

class Home_model extends M_F_Model{
  function __construct() {
    parent::__construct();
  }

  public static function test_this_model($var){
    $result = $var.'+2';
    return $result;
  } 
}

class M_F_Controller {
  public $load;

  public function __construct(){
    $this->load = new Load();
  }
}

class Home extends M_F_Controller{
  function __construct(){
    parent::__construct();
    $this->load->model('home_model');       
  }

  function index($var){
    $result = Home_model::test_this_model($var);
    return $result;
  }
}

我想不必为将来可能要包含的每个类在类中声明实例Home_model::test_this_model();,并避免使用静态函数 。$this->home_model->test_this_model();home_modelHome

提前致谢,如果您需要任何进一步的信息,请告诉我。

4

2 回答 2

1

这样做是否有问题:

$this->home_model = $this->load->model('home_model');

在 Home 的构造函数内部,然后修改model加载器类的函数以返回一个新实例而不是只包含文件?就像是:

public function model($file_name) {
    include $file_name . '.php';
    $model = new $file_name();
    return $model;
}

(这假设$file_name对应于文件内的类名)

于 2012-08-14T00:47:26.243 回答
1
于 2012-08-14T02:04:20.883 回答