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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Правильно ли сконструировал класс?
 
 автор: CrazyAngel   (03.12.2006 в 11:55)   письмо автору
 
 

Всем здрасти :)
Этот класс для парсинга, оцените правильно ли я его сконструировал? подскажите как улучшить :)

<?php
class parser{
    
# Объявляем открытые члены класса
    // Адрес сайта
    
public $host;
    
// Путь до странички
    
public $path;
    
// Регулярное выражени
    
public $pattern;
    
// Содержимое страници
    
public $content;

    
# Объявляем зактрытые члены класса
    // Результаты парсинга
    
private $result;

    
# Конструктор
    
function __construct($host,$path,$pattern){
        
$this->host $host;
        
$this->path $path;
        
$this->pattern $pattern;
    }

    
# Объявляем методы класса
    // Метод getPages(), помещает содержимое страници в $content, также возвращает его
    
public function getPages(){
        if(!
$this->content=file_get_contents($this->host.$this->path))
            
error("Страничка не взялась..:(");
        return 
$this->content;
    }
    
// Метод parserPage(), парсит страницу и результат помещает в $result
    
public function parserPage(){
        if (empty(
$this->content)) $this->error("Нечего еще парсить");
        if (!
preg_match_all($this->pattern,$this->contents,$this->result)) error("Чего-то не парситься");
          unset(
$this->result[0]);
          return 
$this->result;
      }
      
// Метод showResult(), показывает $result
    
public function showResult(){
        if (empty(
$this->result)) $this->error("Нечего показывать пока");
        echo 
"<pre>";
          
print_r($this->result);
          echo 
"</pre>";
    }
    
// Метод getResult(), возвращает $result
    
public function getResult(){
        if (empty(
$this->result)) $this->error("Нечего отдать тебе, солнце :)");
        return 
$this->result;
    }
    
// Метод error(), сообщает об ощибке и завершает скрипт
    
private function error($error){
        die(
$error);
    }
}

   
 
 автор: cheops   (03.12.2006 в 12:32)   письмо автору
 
   для: CrazyAngel   (03.12.2006 в 11:55)
 

У вас вызов методов зависит от порядка вызова, т.е. нужно помнить какие фукнции в каком порядке вызывать - это плохо и считается серьёзной ошибкой проектирования. Задача парсинга сводится к тому, что объект или функция получает параметры страницы и возвращает результат в виде строки (вывод на страницу должен осуществлять другой объект или функция, так как может потребоваться изменить дизайн). Поэтому методы getPages(), parserPage(), showResult() - лишние.

   
Rambler's Top100
вверх

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