Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: ООП

Сообщения:  [1-10] 

 
 автор: Ziq   (28.08.2006 в 16:14)   письмо автору
 
   для: 1999   (28.08.2006 в 16:07)
 

Это я просто учусь :)

   
 
 автор: Axxil   (28.08.2006 в 16:12)   письмо автору
 
   для: 1999   (28.08.2006 в 16:07)
 

Лучше наверное разделять классы по логике.
Логирование ошибок никак не относится к работе с БД (за исключением ошибок работы самой БД). А если например захочется ошибки записывать не в БД а в файлы. Придётся полностью переписывать класс error. А так просто меняем источник данных и всё.
Поэтому данный класс следует оформлять отдельно.

   
 
 автор: 1999   (28.08.2006 в 16:07)   письмо автору
 
   для: Ziq   (28.08.2006 в 15:41)
 

а может лучше все это объединить в одном классе работы с БД?
чтоб в нем были как и запросы INSERT/UPDATE/DELETE-типа, так и запись об ошибке (как отдельный метод)

   
 
 автор: Axxil   (28.08.2006 в 16:07)   письмо автору
 
   для: 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)   письмо автору
 
   для: 1999   (28.08.2006 в 15:34)
 

А есть ли другой вариант? Извините, я забыл сказать, что класс mysql уже вызван и не хотелось бы второй раз его вызывать.

   
 
 автор: 1999   (28.08.2006 в 15:34)   письмо автору
 
   для: ddhvvn   (28.08.2006 в 15:23)
 

интересно как вы будете писать большой проект без ООП)))

   
 
 автор: ddhvvn   (28.08.2006 в 15:23)   письмо автору
 
   для: DEM   (28.08.2006 в 15:21)
 

Я тоже думаю, что для ООП все же лучше использовать, например, ASP, но это уже другая история :-)

   
 
 автор: DEM   (28.08.2006 в 15:21)   письмо автору
 
   для: Ziq   (28.08.2006 в 14:42)
 

Вообще-то РНР не очень-то и предназначен для ООП, конечно есть исключения, но очень редко...

   
 
 автор: targa   (28.08.2006 в 15:09)   письмо автору
 
   для: 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)   письмо автору
 
 

Помогите разобраться в ООП php.

Допустим такая задача, есть два класса: первый, работа с БД, второй, обработка ошибок.

Теперь представим, что необходимо, чтобы ошибки записывались в БД, с помощью класса работы с БД.


class mysql
{
  //....
  function sql($sql) { /* Действия */ }
  //....
}

class error
{
  function error()
  {
     // Выполнение SQL-кода добавления???????????????????
  }
}


Помогите, пожалуйста, разобраться.

   

Сообщения:  [1-10] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования