Intereting Posts
Как безопасно запретить запуск загруженного файла через PHP на любом сервере? Случайное значение при вставке на сервер MYSQL Сериализовать / unserialize PHP-объект-график для JSON preg_match для формата даты mysql Получение выбранной даты с помощью выбора даты в календаре Magento получает цену, включая налог, в файле без шаблона Есть ли способ получить текущий HTTP-код ответа с PHP? Хранение файлов cookie Laravel превышает каждый раз каждые несколько посещений PHP: Простые регулярные выражения для соответствия длине? Примеры параметризованных запросов Как удалить строку из текстового файла с помощью php, не выходя из пустой строки Предупреждение DataTables: данные JSON с сервера не могут быть проанализированы. Это вызвано ошибкой форматирования JSON многомерный массив, сравнивающий значения Как проверить, существует ли активное соединение MySQLi в PHP? переменные класса

Какие шаблоны баз данных (ORM, DAO, Active Record и т. Д.) Используются для небольших / средних проектов?

Я пишу веб-сайт недвижимости с базовой функцией для выбора и заказа недвижимости.

Это небольшой / простой проект, но я хочу написать его в обратном порядке, поэтому в будущем я или другие разработчики могут превратить его в приложение среднего бизнеса, не переписывая его с нуля.

Итак, какие шаблоны вы могли бы мне посоветовать использовать для работы с базой данных?

Пока у меня это:

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 .