将函数与辅助类分开是否合适?

时间:2013-03-24 22:17:26

标签: php oop model-view-controller

我对MVC概念本身很陌生,但我慢慢开始掌握它,它是什么让它如此有用。

我在我的应用程序中有不同的标签,这些标签是层次结构中的级别(我称之为实体),每个标签由两个类表示 - 一个Binding类,包含与数据库通信的所有方法,以及辅助类,它只是实体的一个框架,都在同一个文件中。我想知道这是否是接近设计模式的正确方法?我还没有建立模型或控制器,因为我不确定他们目前会在哪里进来。另外,我现在对使用ORM不感兴趣。

class CompanyBinding extends EntityBinding {
    function __construct() {
        parent::__construct();
    }


    public function get($criteria = array()) {
        // method to retrieve an array of DB rows, each represented by the helper class

            [...]

        return $sth->fetchAll(PDO::FETCH_CLASS, 'Company');
    }

    public function get_by_id($id) {
        // method to retrieve an one single object of the helper class

        $sth->setFetchMode(PDO::FETCH_CLASS, 'Company');
        return $sth->fetch();
    }
}


class Company extends Entity {
    public $id;
    public $name;
    public $email;
    public $phone;

    // just properties. some classes have a __construct() function to manipulate some fields after retrieval

    [...]
}

我现在需要一个模特课吗?我正在考虑Controller可以执行 - > get函数并加载适当的类,因为实体的名称是通过AJAX从前端传递的。

顺便说一下,我也很困惑。控制器应该吸收所有AJAX请求还是应该创建一个名为ajax.php的文件来处理它,并将Controller类放在public_html之上,以便用户无法访问类文件?

1 个答案:

答案 0 :(得分:2)

将类分隔为自己的文件。 PHP在打开文件位置时在缓存文件位置方面做得不错,因此您不必担心IO。一般来说,将多个类放在一个文件中是不好的做法。它不会破坏你的应用程序,但它可能会让更多经验丰富的开发人员分崩离析。 :)

除此之外,你没事。