Пара вещей:
Большинство проектов PHP, использующих соединение с базой данных, представляют эту базу данных, используя шаблон Singleton , если вы не уверены, что это такое, прочтите его.
Как правило, я определяю соединения с базой данных в файле конфигурации, который может быть легко изменен между средами (разработка, этап, производство).
Затем я создам экземпляр подключения к моей базе данных в файле начальной загрузки, используя вышеупомянутый файл шаблона и конфигурации Singleton.
Мои модели обычно полностью абстрагируют хранилище данных базы данных / таблицы, для каждой модели я буду делать что-то вроде этого:
bootstrap.php
$config = load_config_data(ENVIRONMENT);
Db::setDefaultAdapter($config['database']);
Модель / Таблица / User.php
class Table_User extends Db_Table
{
// Table name
protected $_name = 'user';
/* Do a bunch of database specific stuff */
}
Модель / User.php
class User extends Model
{
public function updateUsername($userid, $username)
{
// Uses default adapter, Singleton pattern!
$table = Db::loadTable('user');
$table->update(
array('username'=>$username),
Db::quoteInto('userid = ?', $userid)
);
}
}
Это в значительной степени введение в Model в Zend Framework MVC , я хотел бы ознакомиться с некоторыми идеями о том, как организовать ваш код (или избежать некоторых проблем). и на самом деле использовать Framework .)