0

私は MVC の概念自体にはかなり慣れていませんが、ゆっくりと理解し始めています。

私は自分のアプリに、階層内のレベルであるさまざまなタブを持っています (エンティティと呼びます)。それぞれが 2 つのクラスで表されます。データベースと通信するためのすべてのメソッドを備えた 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

    [...]
}

モデルクラスは今必要ですか?エンティティの名前はAJAXを使用してフロントエンドから渡されるため、コントローラーが->get関数を実行して適切なクラスをロードできると考えていました。

ちなみに私もかなり迷っています。コントローラーはすべての AJAX 要求を吸収する必要がありますか、それともそれを処理する ajax.php というファイルを作成し、コントローラー クラスを public_html の上に配置して、ユーザーがクラス ファイルにアクセスできないようにする必要がありますか?

4

1 に答える 1

2

クラスを独自のファイルに分割します。PHP は、ファイルを開くと、その場所を適切にキャッシュするので、IO について心配する必要はありません。一般的に言えば、複数のクラスを 1 つのファイルに入れるのは悪い習慣です。アプリケーションが壊れることはありませんが、経験豊富な開発者が泣き崩れる原因になる可能性があります。:)

それを除けば、あなたは元気です。

于 2013-03-24T22:55:34.190 に答える