Духовность™
Продвинутый новичок
Патерн "Adaptor" из Книги. ООП + MySql
Привет.
Переписываю свой старый класс для работы с Mysql, в книге "Профессиональное программирование на PHP" есть раздел "типовые проекты", а в нем представлен паттерн"Adaptor", который служит для работы с СУБД. В снего сейчас и буру пример.
Вот код:
Мне вот одно не понятно - зачем было выносить в отдельный класс работу по выборке?
Если бы выборка была бы в основном классе, то можно было бы написать
а теперь приходится класс DB_MysqlStatement дополнять методом getResult:
Привет.
Переписываю свой старый класс для работы с Mysql, в книге "Профессиональное программирование на PHP" есть раздел "типовые проекты", а в нем представлен паттерн"Adaptor", который служит для работы с СУБД. В снего сейчас и буру пример.
Вот код:
PHP:
class DB_MySQl
{
// подключение к СУБД, etc
public function execute($sql_query)
{
// делаем mysql_query
if (is_resourse($ret)) // $ret - результат работы mysql_query()
{
$stmt = new DB_MysqlStatement(....);
$stmt->result = $ret;
return $stmt;
}
else return $ret;
}
}
class DB_MysqlStatement
{
// ....
public function fetch_assoc()
{
return mysql_fetch_assoc($this->result);
}
// и так далее - реализуем различные методы выборки
}
Если бы выборка была бы в основном классе, то можно было бы написать
PHP:
$database = new DB_MySQl();
$res = $database->query('SELECT 1');
while($row = mysql_fetch_assoc($res))
{
print_r($row);
}
PHP:
$database = new DB_MySQl();
$res = $database->query('SELECT 1');
while($row = mysql_fetch_assoc($res->getResult()))
{
print_r($row);
}