| |
|
|
| | Помогите разобраться в ООП php.
Допустим такая задача, есть два класса: первый, работа с БД, второй, обработка ошибок.
Теперь представим, что необходимо, чтобы ошибки записывались в БД, с помощью класса работы с БД.
class mysql
{
//....
function sql($sql) { /* Действия */ }
//....
}
class error
{
function error()
{
// Выполнение SQL-кода добавления???????????????????
}
}
|
Помогите, пожалуйста, разобраться. | |
| |
|
|
| |
|
|
| |
для: Ziq
(28.08.2006 в 14:42)
| | | Примерно так:
class mysql
{
//....
function sql($sql) { /* Действия */ }
//....
}
class error
{
var $db=false;
function __construct()
{
$this->db=new mysql(); // это чтоб каждая функция этого класса не создавала экземпляр mysql
}
function error()
{
// Выполнение SQL-кода добавления???????????????????
if ($error)
{
$this->db->sql(...);
}
}
}
|
| |
| |
|
|
| |
|
|
| |
для: Ziq
(28.08.2006 в 14:42)
| | | Вообще-то РНР не очень-то и предназначен для ООП, конечно есть исключения, но очень редко... | |
| |
|
|
| |
|
|
| |
для: DEM
(28.08.2006 в 15:21)
| | | Я тоже думаю, что для ООП все же лучше использовать, например, ASP, но это уже другая история :-) | |
| |
|
|
| |
|
|
| |
для: ddhvvn
(28.08.2006 в 15:23)
| | | интересно как вы будете писать большой проект без ООП))) | |
| |
|
|
| |
|
|
| |
для: 1999
(28.08.2006 в 15:34)
| | | А есть ли другой вариант? Извините, я забыл сказать, что класс mysql уже вызван и не хотелось бы второй раз его вызывать. | |
| |
|
|
| |
|
|
| |
для: Ziq
(28.08.2006 в 15:41)
| | | если mysql класс вызван, то передавайте его в класс обработки ошибок как параметр
class error
{
function error($db)
{
$this->db = $db;
// Выполнение SQL-кода добавления
}
}
// И вызов:
$db = new mysql();
$errorObj = new error($db);
|
| |
| |
|
|
| |
|
|
| |
для: Ziq
(28.08.2006 в 15:41)
| | | а может лучше все это объединить в одном классе работы с БД?
чтоб в нем были как и запросы INSERT/UPDATE/DELETE-типа, так и запись об ошибке (как отдельный метод) | |
| |
|
|
| |
|
|
| |
для: 1999
(28.08.2006 в 16:07)
| | | Лучше наверное разделять классы по логике.
Логирование ошибок никак не относится к работе с БД (за исключением ошибок работы самой БД). А если например захочется ошибки записывать не в БД а в файлы. Придётся полностью переписывать класс error. А так просто меняем источник данных и всё.
Поэтому данный класс следует оформлять отдельно. | |
| |
|
|
| |
|
|
| |
для: 1999
(28.08.2006 в 16:07)
| | | Это я просто учусь :) | |
| |
|
|