私は、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 を使用する際の私のアプローチはこのようになっていますか?