Я пишу веб-сайт недвижимости с базовой функцией для выбора и заказа недвижимости.
Это небольшой / простой проект, но я хочу написать его в обратном порядке, поэтому в будущем я или другие разработчики могут превратить его в приложение среднего бизнеса, не переписывая его с нуля.
Итак, какие шаблоны вы могли бы мне посоветовать использовать для работы с базой данных?
Пока у меня это:
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(); // ...
Лучшим способом было бы использовать ORM, например Doctrine . Это может показаться чересчур большим для проекта меньшего типа, но он окупится в долгосрочной перспективе.
Лучше использовать стандартные способы делать что-то, а не изобретать свои собственные.
Вот список ORMS из Википедии .
Также вам нужно оценить ваш проект, создание проекта фристайла может быть не очень хорошей идеей. Другие разработчики должны будут изучить ваш код и понять, как он работает и т. Д.. Лучше использовать хорошо известные фреймворки, такие как Zend Framework , Symfony или CakePHP . Вы также можете изучить расширяемые системы CMS, такие как Joomla и Drupal .