Forum Webscript.Ru

Программирование => PHP => Тема начата: MHS от 08 Марта 2004, 03:03:38

Название: Конструктор или паблик-методы класса?
Отправлено: MHS от 08 Марта 2004, 03:03:38
Доброго времени суток..Тут один вопросик возник к профи-кодерам.Есть класс для работы с БД(mySQL):
class mysql {

function connect{
 //функция коннекта с БД
}

function select_db{
 //функция выбора БД
}
}

Недавно один мой знакомый-программист настоятельно посоветовал мне сделать методы [connect] и [select_db]как private и вызвать их неспоредственно в конструкторе.После этого код выглядит примерно так:
class mysql {

function mysql{
 //конструктор класса mysql
 $this->_connect();
 $this->_select_db();
}

function _connect{
 //функция коннекта с БД
}

function _select_db{
 //функция выбора БД
}
}

Теперь сам вопрос, рационально ли выносить эти два метода в конструктор?Ведь если мне нужно например выбрать другую БД - при этом же коннекте - мне прийдется создавать новую инстанцию класса [db]
Название: Конструктор или паблик-методы класса?
Отправлено: Макс от 08 Марта 2004, 11:41:48
MHS
ИМХО проблема надуманая. Если нужно будет тебе менять базу в текущем соединении, ну так сделай соответствующий методж public. Или сделай дополн. публичны метод:  function SelectDB($dbname) {
   $this->_select_db($dbname);
}По поводу его совета - наверное такой подход будет более удобным с точки зрения написания ПХП-кода. Горазд проще и быстрее написать  $conn = & new Mysql(......);  чем писать $conn = & new Mysql();
$conn->connect(......);
$conn->select_db($dbname);