2
我想弄清楚如何查詢數據庫並在多個頁面上輸出結果。頁面類指導
頁面將有不同的查詢和查詢數量,有些頁面會有類似的佈局,而其他頁面會完全不同。
這是正確的方向去爲每個頁面擁有所需的sql字段和可能的輸出數據的html的類?或者更有經驗的設計師會以不同的方式做到這一點?
如(道歉可怕的僞代碼):
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);
代碼的整點是讓接力相當於這個程序代碼:
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>....;
}
是否合適?我認爲這裏沒有「適當」的定義來決定。選擇1)可維護的方法,2)富有成效的方法。 –
我試圖解決的是這個問題是好還是壞設計的。例如,它是否會與SOLID的原則相沖突? – mrmryb
你可能想看看MVC模式。它具有明顯的關注點分離,我認爲這是最合適的哲學(對我自己而言)......這都是主觀的 – danronmoon