我想使用OOP概念使用PHP构建一个简单的博客应用程序。所以基本上我有一个Blog类和一个数据库类。在Blog类中,我有一个名为" createANewBlog()"它采用博客文本和数据库连接。例如:
class Blog{
public $id;
public $text;
public function createANewBlog($inText, $db)
{
$this->text = $inText;
$this->id = $db->create($inText);
return true;
}
}
所以基本上这个函数调用数据库类中的create()函数来获取最后插入的Id。
class DB{
function create($intext){
$sql = "INSERT INTO....... ";
then i will send the last inserted id;
}
}
在索引控制器中,我将简单地创建一个博客对象并调用该方法来创建一个新对象。
现在我的问题是"它是在OOP中编码的正确方法吗?或者我可以在博客类createANewBlog()函数中调用查询,如:
createANewBlog($inText, $db){
$this->text = $inText;
$this->id = $db->execute("INSERT INTO .....");
return true;
}
请帮助我,因为我不知道在哪里放置查询的正确位置(在博客课程内或数据库类内)。
答案 0 :(得分:4)
你的结构是正确的,但最好的做法是根据他们的工作隔离每一件事。
所以会有以下事情。
DAO(数据访问对象)是一个提供摘要的对象 数据库接口。
所以总是使用DAO在模型和数据库之间进行通信。它可能包含插入,读取,删除,查找,过滤方法/函数。
以上事项的用途如下,
通过这种方式,您可以保持简单,强大和可维护。
答案 1 :(得分:1)
OOP的想法是创建出色的应用程序结构。在很棒的应用中,您需要使用模块化技术。我不会给你一些你需要遵循的大量信息。在我第一次学习OOP时,我宁愿给你一个我遵循的策略。
让我举一个代码示例!:
您正在使用数据库连接,因此创建一个将存储所有数据库连接和其他连接内容的类。
在这里我创建了一个名为connection_admin的类
Class connection_admin {
protected $_link;
//If You Delete This Everybody of the Team Will send you a serial killer to kill you ......... :v :v
function __construct($host,$user,$pass,$db){
$this->_link = mysqli_connect($host,$user,$pass);
mysqli_select_db($db,$this->_link);
}
public function query($sql){
$result = mysqli_query($sql);
$this->confirm_query($sql);
return $result;
}
public function confirm_query($sql){
if (!$sql) {
# code...
die('Query Failed'. mysql_error());
}
}
public function count_matched_id($queried_output){
return mysqli_result($queried_output, 0);
}
}
然后我创建了一个全局对象,如" init.php" ,我将在我的项目中随处可见。
<?php
include 'function/admin_connection.php';
$Connection = new connection_admin('localhost','root','','my_cart');
现在是时候在所有.php文件中要求它们了。
然后在视图文件中,您只需要调用$ Connection-&gt; query()来查询数据库
THADAAAAA !!
注意:它不能很好地利用php的OOP功能,但它会教它 你如何使用OOP。之后尝试遵循MVC结构。