我寫房地產網站 具有選擇和訂購不動產的基本功能。哪些數據庫模式(ORM,DAO,活動記錄等)用於小型/中型項目?
它體積小/簡單的項目,但我想它寫在方式, 所以在未來我,或其他開發人員,可以把它變成中小型企業應用,而無需從頭開始重寫它 。
那麼你可以建議我用什麼樣的模式來處理數據庫呢?
現在我有這樣的:
class db_DBConnection
{
// basic singleton pattern here...
}
// primary class to be extende by other table DAOs
abstract class db_Table
{
protected $table;
protected $order_by;
/**
* Executes specified query with prepared statements
* returns statement object, which can fetch data.
*
* @param $sql - SQL query to execute
* @param $params - bind values to markers through associative arrays
*/
protected function executeQuery($sql, $params = null)
{
$dbh = db_DBConnection::getConnection();
$stmt = $dbh->prepare($sql);
// binds values to markers and executes query
$stmt->execute($params);
return $stmt;
}
/**
* @param id - id of row to retrieve from database
*
* It sends SQL query and id to executeQuery
* function returns associative array, representing
* database row.
*/
public function find($id)
{
$sql = 'SELECT * FROM ' . $this->table . ' WHERE id=:id LIMIT 1';
// bind id
$params = array(':id' => $id);
// execute and return associative array
return $this->executeQuery($sql, $params)->fetch(PDO::FETCH_ASSOC);
}
public function findAll($quantity, $where)
{
// Returns array of
// associative arrays of table rows :)
// TODO: write this function
}
abstract protected function insert();
abstract protected function update();
abstract protected function delete();
// ...
*(參考)* [企業應用程序體系結構](http://martinfowler.com/eaaCatalog/index.html) – Gordon 2010-10-01 13:38:51
我發現很難向您建議任何事情,而不知道項目的真實世界要求手。無論你需要一個ORM還是一個框架,甚至PHP都不能根據你提供的細節決定。解釋各種模式的優缺點超出了範圍。 – Gordon 2010-10-01 14:19:34