3

私は、PHP で ORM を使用することを述べているトピックや質問を数多く見てきました (初心者向けの 30 の php ベスト プラクティスなぜ php で orm を使用するのか)

だから私は疑問に思っています、ORMをPHPで使用する方法。特にOOPHP。

クラス User があり、それを登録しているとしましょう。(RedBean を使用しています)

<?php
class User {
    private $username;
    private $password;

    public function registerUser($username, $password) {
        require $root . "classes/Helper.php";
        $helper = new Helper();
        $salt = sha1($helper->generateSalt());

        $this->username = $username;
        $this->password = sha1($password + $salt);
        $this->salt = $salt;
        $this->store();
    }
    private function store() {
        $user = R::dispense(__CLASS__);
        $user->username = $this->username;
        $user->password = $this->password;
    }
}
?>

これは機能します。ユーザーが登録されるたびに、それも保存しています。それとも、store()関数__construct() を 使用すると便利ですか、それとも使用した__CLASS__方がよい'User'ですか?

private function load($username){
    $user = R::find(__CLASS__, 'username=?', array($username));
    $this->username = $user->username;
    $this->password = $user->password;
    $this->salt = $user->salt;
    $this->email = $user->email;
}

ユーザーをロードしたい場合は、自分のページで新しい User オブジェクトを作成し、load()それを呼び出して目的のユーザーを入力します。または、直接使用$userbean = R::find('User', 'username=?', array($username));してに入れる必要があり$user = new User();ますか?

いくつかのことができる方法に少し混乱しています。これは実際にオブジェクト指向の PHP で使用するために作られていますか?

[編集:] では、RedBean と OOPHP を使用する際の私のアプローチはこのようになっていますか?

4

1 に答える 1

0

それは ORM に依存します。一般に、ORM を使い始めるための FAQ があります。DOCTRINE 2 ORM については、このページを読むことができます。PROPEL ORM については、このページを読むことができます。redbean については、tou はそれを読むことができます。

申し訳ありませんが、redbean についてはわかりませんが、他の ORM については (私は Doctrine2 を使用しています) 便利であり、OOPHP で使用できます。ORMのインストールを開始した後、データベースにリンクされたORMを「呼び出す」ときにオブジェクトを受け取ると、SQLリクエストを実行してすべてのリクエストを処理するのに便利です...

ユーザーにとっては、SQL やデータベースのようにすることはできません。ORM がリクエストの最適化を処理するため、より便利です...

于 2012-08-23T07:51:13.763 に答える