PDO を使用して mysql クエリのすべての処理を行う DB (class.pdo.php) というクラスと、ログイン システムの管理に使用する user という別のクラスがあります。
私の質問は、DB を使用できるように、ユーザーのすべてのパブリック関数で常に $db をインスタンス化する必要があることに関連しています。これは効率的ですか?ユーザーの __construct() 内で DB をインスタンス化するべきではありませんか?
これは私のコードです
require_once("../../class.pdo.php");
class user {
private $db = null;
public function __construct(){
/* Empty? */
}
public function find_by_email($email){
$db = new db();
$db->query('SELECT * FROM users WHERE email = :email LIMIT 1');
$db->bind(':email',$email);
$result = $db->single();
return $result;
}
public function create($email,$password,$first_name,$last_name){
$db = new db();
$db->query("INSERT INTO users(email,password,first_name,last_name,created_at) VALUES (:email,:password,:first_name,:last_name,NOW())");
$db->bind(':email',$email);
$db->bind(':password',$password);
$db->bind(':first_name',$first_name);
$db->bind(':last_name',$last_name);
$result = $db->execute();
return $db->lastInsertId();
}
[more similar functions ommited]