数据库连接
$db_user = 'root';
$db_pass='';
$db = new PDO('mysql:host=localhost;dbname=resource_management', $db_user, $db_pass);
在这里创建了用户类
class User{
protected $username;
protected $pass;
public function __construct($username, $password){
$this->username = $username;
$this->password = $password;
}
public function test(){
$sql = "select * from user";
$data = $db->query($sql);
while ($row = $data->fetch(PDO::FETCH_OBJ)){
var_dump($row);
echo $row->username;
}
}
}
在这里,我尝试测试用户类
$user = new User('admin', 'test');
$user->test();
您通常会在构造函数中传递它或使用自动加载参数的工厂模式:
class Factory{
public static function setdb($db) {
self::$db = $db;
}
public static function getUser($role, $action) {
return new User(self::$db, $role, $action);
}
public static function getUserPermissions($role, $action) {
return new UserPermissions(self::$db, $role, $action);
}
}
类似的东西。注意:我不是模式专家,现在我正在学习它,所以上面的代码可能包含错误/不完美。然后,您可以像这样访问它:
$DB = new PDO(...);
factory::setdb($DB)
$User = Factory::getUser('admin', 'test');
我认为代码是不言自明的。然后,您可以添加其他方法来创建更多对象,并自动向它们传递所需的变量,这样您就不需要手动编写它们。它被称为工厂模式。您可以根据需要添加更多方法。
注意2:虽然全局变量是可能会想到的东西,但这是一个糟糕的主意。