我试图弄清楚如何查询数据库并在多个页面上以 oop 输出结果。
这些页面将具有不同的查询和查询数量,有些将具有相似的布局,而另一些则完全不同。
这是为每个页面设置包含所需 sql 字段以及可能用于输出数据的 html 的类的正确方向吗?或者一个更有经验的 oop 设计师会做不同的事情吗?
例如(为可怕的伪代码道歉):
abstract class Page(){}
class SearchPage extends Page()
{
private $sql;
function output(){};
}
class ProfilePage extends Page()
{
private $sql;
private $sql2;
function output(){}; ← dynamic method that can output both sql and sql2??
}
class DatebaseFetch()
{
__construct($sql)
{
$this->$sql=$sql;
}
function results()
{
...get db results...;
return $results;}
}
}
class PageFactory()
{
function getPage($page)
{
return new $page.Page();
}
}
$page=PageFactory::getPage($_SERVER['PHP_SELF']);
$query=$page->sql;
$db=new DatabaseFetch($query);
$results=$db->results();
$page->output($results);
代码的重点是得到这个程序代码的 oop 等价物:
Search Page:
$db=new PDO("mysql:host=localhost;dbname=test;","test","test");
$db->query("select search items from table");
while($row=$db->fetch(PDO::FETCH_ASSOC)){
echo <html>....;
}
Profile Page:
$db=new PDO("mysql:host=localhost;dbname=test;","test","test");
$db->query("select profile items from table");
while($row=$db->fetch(PDO::FETCH_ASSOC)){
echo <html>....;
}