我目前正在尝试为自己构建一些不错的类,以更快地构建我的页面。
我目前有这个设置,
// page class
class Page extends DBC {
// creates a page
public function create($data = false) {
echo 'SOME BASIC HTML TO SETUP PAGE';
// pass the database connection var to content function
content($this -> $dbc, $data);
echo 'SOME BASIC HTML TO SETUP PAGE';
}
}
// dbc class
class DBC {
public $dbc;
public function __construct() {
// sets the database connection
}
}
对于我创建的每个新页面,我只是在将我的类添加到脚本中之后执行此操作。
// content function
function content($dbc) {
// some content
// am able to use dbc
}
// new page object
$page = new Page();
// am able to use dbc var fine here too
$page -> dbc -> // execute a query
// create page
$page -> create();
但我现在面临的问题是如何最好地在我的DBC
类中创建函数以使我的查询构建更快。我尝试将以下函数添加到类DBC
中,
public static function query($q, $data, $options = array()) {
// execute prepared query
$q = $this -> dbc -> prepare($q);
return $q -> execute($data);
}
但是我不能在我的content
函数中使用它,因为只有数据库连接被传递给它,并且类query
内的函数DBC
在对象上下文中使用该连接。
解释我的问题后,我的问题如下;
最好在我的DBC
班级中创建为我执行查询的函数static
并传入现有的连接?
或者
DBC
将整个对象传递给我content
在Page
类中的函数会更好吗,如下所示,
content(new DBC(), $data);
这样我就可以在对象上下文中使用函数。该类Page
仍然需要由DBC
该类扩展,因为我也需要在函数dbc
之外使用 var 。但是,当它被扩展时,这content
不会产生类的 2 个实例,而当传递给函数时,会产生一个类的实例吗?DBC
Page
content
感谢您花时间阅读此问题并提供任何答案!