我已经看到十几个主题和问题都在说明在 PHP 中使用 ORM(30 个 php 初学者最佳实践以及为什么在 php 中使用 orm)
所以我想知道,如何在 PHP 中使用 ORM。特别是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;
}
现在,如果我想加载一个用户,我可以在我的页面中创建一个新的用户对象并调用load()
以用所需的用户填充它。或者我应该直接使用$userbean = R::find('User', 'username=?', array($username));
并将它放在一个$user = new User();
?
我对可以完成几件事的方式感到有些困惑。这实际上是与面向对象的 PHP 一起使用的吗?
[编辑:] 那么,我使用 RedBean 和 OOPHP 的方法是这样吗?