ФорумПрограммированиеPHP для идиотовPHP и ООП → Свой pastebin

Свой pastebin

  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 7 июня 2010 г. 23:03, спустя 30 минут 5 секунд

    ну скорее "адаптер". вобщем цель развязать способ хранения и логику "кеширования" текстов. плюс сервис локатор позволяет создавать только те экземпляры парсеров, какие понадобятся в этом сеансе работы и не связывать код с конкретной имплементацией парсера
    ιιlllιlllι унц-унц
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 7 июня 2010 г. 23:05, спустя 1 минуту 21 секунду

    artoodetoo, может лучше по пиву?)
    Сапожник без сапог
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 7 июня 2010 г. 23:06, спустя 1 минуту 41 секунду

    у меня квас :) и водка.
    ιιlllιlllι унц-унц
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 7 июня 2010 г. 23:09, спустя 2 минуты 56 секунд

    олололололо :D
    Сапожник без сапог
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 7 июня 2010 г. 23:12, спустя 2 минуты 18 секунд


    я только не могу вкурить, че это будет. Фронтенд для Geshi?

    неправильный подход. это geshi для pastebin, а не наоборот :) класс PastebinModel ничего не знает о Geshi.
    ιιlllιlllι унц-унц
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 8 июня 2010 г. 0:09, спустя 57 минут 15 секунд

    artoodetoo, поэтому и надо чтобы интерфейса парсера отдавал иды доступных парсеров, или пользователи наугад будут подбирать ид?
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 8 июня 2010 г. 0:47, спустя 37 минут 39 секунд

    Я еще не описал как будет инициироваться PastebinParserLocator. Вероятно какой-то список парсеров будет. Вот кто даст этот список, тот и в пользовательский интерфейс этот список предоставит.

    Я пишу модель. Что ты привязался с тем что видит пользователь! Мне до пизды.
    ιιlllιlllι унц-унц
  • mario

    Сообщения: 6067 Репутация: N Группа: Джедаи

    Spritz 8 июня 2010 г. 0:50, спустя 3 минуты 25 секунд


    у меня квас :) и водка.
    О? Вкусно? А то водка с салом уже поднадоела… :)
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 8 июня 2010 г. 0:59, спустя 8 минут 53 секунды


    Я еще не описал как будет инициироваться PastebinParserLocator. Вероятно какой-то список парсеров будет. Вот кто даст этот список, тот и в пользовательский интерфейс этот список предоставит.
    Я пишу модель. Что ты привязался с тем что видит пользователь! Мне до пизды.

    Аааа, ну ладно, я наверно тебя не так понял сразу.
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 8 июня 2010 г. 1:32, спустя 32 минуты 55 секунд

    Ну вот как может выглядеть инициализация сервис локатора

    PastebinParserLocator::init(array(
    'text' => 'MyPlainParser',
    'php' => 'MyPhpParser'));


    Главный метод PastebinModel

    // returns html:string
    public function parse($text, $parserId, $userId)
    {
    $this->id = $this->_hash($text, $parserId);
    $exist = $this->backend->load($this->id);
    if (!$exist) {
    $parser = PastebinParserLocator::getParserById($parserId);
    $html = $parser->parse($text, $parserId);
    $this->backend->save($this->id, $parserId, $text, $html);
    $this->backend->log($this->id, $userId, microtime(TRUE));
    } else {
    $html = $exist['html'];
    }
    return $html;
    }


    Набросал тест. В качестве бекенда сделал простейший файловый прибамбас. И пару парсеров.
    См. вложение.
    ιιlllιlllι унц-унц
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 8 июня 2010 г. 1:35, спустя 2 минуты 44 секунды

    artoodetoo, фу блядь, опять эти блядские массивы, буэээ
    Сапожник без сапог
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 8 июня 2010 г. 1:38, спустя 3 минуты 48 секунд

    эти изумительные массивы. лучшее, что есть в блядском пэхапэ
    ιιlllιlllι унц-унц
  • kostyl

    Сообщения: 5210 Репутация: N Группа: Джедаи

    Spritz 8 июня 2010 г. 1:50, спустя 11 минут 16 секунд

    эти изумительные массивы. лучшее, что есть в блядском пэхапэ

    поддерживаю

    а еще я думаю надо парсер локатор передавать так же как и бэкенд - инъекцией бля…
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 8 июня 2010 г. 7:50, спустя 5 часов 59 минут 56 секунд

    ты предлагаешь заменить Dependency Lookup: Pull approach на Dependency Lookup: Push approach )))
    тот же Х, только вид сбоку. читать здесь
    ιιlllιlllι унц-унц
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 8 июня 2010 г. 8:15, спустя 25 минут 6 секунд

    Может ты и прав, kostyl.
    А что если убрать класс локатора, а поиск парсера засунуть в сам главный класс. Инициировать всё в одном месте, типа:

    $myParserClasses = array(
    'text' => 'MyPlainParser',
    'php' => 'MyPhpParser');
    $pastebin = new PastebinModel(MyPBBackend, $myParserClasses);

    на что ортодоксальные ООП-ники скажут "это противоречит Single responsibility principle".
    ιιlllιlllι унц-унц

Пожалуйста, авторизуйтесь, чтобы написать комментарий!