在带有控制器的CodeIgniter中实现标准PHP类的最佳方式


Best way to implement standard PHP classes in CodeIgniter with Controllers

我试图模仿这些简单的PHP类定义在CI

<?php
class Student
{
    private $name;
    public function __construct($name) {
        $this->name = $name;
    }
    public function getName() {
        return $this->name;
    }
}
class SportsStudent extends Student {
    private $sport;
    public function __construct($name) {
        parent::__construct($name);
        $this->sport = "Tennis";
    }
    public function getSport() {
        return $this->sport;
    }
}
$s1 = new Student("Joe Bloggs");
echo $s1->getName() . "<br>";
$s2 = new SportsStudent("John Smith");
echo $s2->getName() . "<br>";
echo $s2->getSport() . "<br>";
?>

我想知道如何最好地接近它,我确实尝试为两个类创建一个控制器,但在继承方面遇到了麻烦,我被告知最好扩展CI_Controller,但无法得到我的头,它似乎过度,不推荐。

最好只是保留这些标准类并从我的控制器调用它们吗?

这是我第一个基于MVC的系统尝试,也是我的第一个CI项目,如果有一些指针就太好了。

这些类应该表示为模型,而不是控制器。所以你可以这样做:

class Student extends CI_Model {
    ...
}
class SportsStudent extends Student {
    ...
}

您应该将学生模型放在application/core文件夹(用于CI 2+)或application/libraries文件夹(用于CI 1.8或更低-以及将CI_Model更改为Model)中。