PHP OOP UML从类中分离数据库配置详细信息

PHP OOP UML从类中分离数据库配置详细信息,php,mysql,oop,uml,Php,Mysql,Oop,Uml,我正在为学校项目开发一个电子商务商店。 我有几个这样的类,它们使用相同的数据库连接。 所以我必须把它们分开 1.如何为我的所有类使用单个数据库连接文件。我有几个与此相同的类 2.我画了一些用例和类图。如果有人有UML(电子商务)方面的经验,你能验证一下吗? abc班{ public $id; public $name; public $email; public $db; function __construct() {$this->db=new mysqli

我正在为学校项目开发一个电子商务商店。 我有几个这样的类,它们使用相同的数据库连接。 所以我必须把它们分开
1.如何为我的所有类使用单个数据库连接文件。我有几个与此相同的类
2.我画了一些用例和类图。如果有人有UML(电子商务)方面的经验,你能验证一下吗? abc班{

 public $id;
 public $name;
 public $email;  
 public $db;   

 function __construct()
    {$this->db=new mysqli('localhost','root','','cart');}



public function newsletter_subcribe()
{$sql="insert into table (id,name,email) value('$this->id','$this->name','$this->email')";  
$this->db->query($sql);}

这个类是为了CRUD而对数据库进行一些查询,你能做的最好的事情是再增加一个控制器来访问这个类,还要确保每个函数都是私有的,而不是公共的

所以基本上,控制器会将数据发布到类中以执行CRUD。 更像CI中的模型

控制器-->>您的类-->>数据库

CLASS A 
{
private function dbconnection()
{
}

private function a($param)
{
dbconnection();
//CRUD HERE
} 
}


CLASS B

main function()
{
//load class A here, and you can access all method
$result = a($param);
}

对于第一个问题:查看依赖项注入。同时查看准备好的语句……您使用数据库的方式可能不安全且易受攻击!请阅读以下内容:依赖项注入是一种方式,它使您的代码可移植且灵活。因此,您将凭据交给构造函数,通常以一个静态数据对象。这是学校项目。我在问如何为我所有的班级使用一个数据库连接文件。我没有听懂。如何为我所有的班级使用一个数据库连接文件。我有几个和此相同的班级。我不想在每个班级中键入用户名和密码db name和$db。您不需要键入e每个类中的用户名和密码db name,例如:CLASS A,它包含db connection和all method to do CRUD(all method函数是expect parameter to do CRUD),然后在控制器或CLASS B中,您需要做的事情是加载CLASS A以访问method函数而不是db connection,并将参数传递给CLASS A