ФорумПрограммированиеPHP для идиотов → (h)mvc patterns

(h)mvc patterns

  • sum

    Сообщения: 25 Репутация: N Группа: Кто попало

    Spritz Июль 1, 2010, 8:45 д.п.

    Собственно сабж, тема отличная от фреймворков, есть у кого примеры?
  • sum

    Сообщения: 25 Репутация: N Группа: Кто попало

    Spritz Июль 1, 2010, 9:33 д.п., спустя 48 минут 4 секунды

    сделаю задел:
    для php4 реализация паттерна сингелтон:
    имеем обычный класс


    class a{
    var $a;
    function a(){
    $this->a = 'value';
    }

    function getA{
    return $this->a;
    }
    }


    для того чтобы не описывать переменную для объекта данного класса в теле программы вообще. Когда необходимо - достаточно вызвать a::getInstance() и мы получим нужый нам объект. Причем объект будет один и тот же - обратите внимание на модификатор static в описании метода.

    $a = & a::getInstance();

    class a{
    var $a;

    function a(){
    $this->a = 'value';
    }

    function getA{
    return $this->a;
    }

    // функция
    function &getInstance (){
    static $instance;
    if (!isset($instance)) {
    $cl = __CLASS__;
    $instance = new $cl();
    } // if
    return $instance;
    }
    }



    для php5 можно переписать и не юзать &, а то я его постоянно забываю )
  • artoodetoo

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

    Spritz Июль 1, 2010, 9:36 д.п., спустя 3 минуты 21 секунду

    а для чего этот синглтон?
    я бы посоветовал начать MVC с описания вызовов, а не реализации. условно. от точки входа, до представления.
    ιιlllιlllι унц-унц
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz Июль 1, 2010, 9:53 д.п., спустя 16 минут 24 секунды

    sum, ну коли так, то для 5 пыхи и __CLASS__ юзать не стоить. Есть для этого функции спецовые (get_class…).

    А вообще вот такой (кстати, стандартный из документации) у меня синглтон:

    class ClassName {

    private static $instance; // singleton

    private function __clone() {}

    public static function getInstance() {
    if (self::$instance === null) {
    self::$instance = new self;
    }
    return self::$instance;
    }

    }


    По сути можно даже малость ужать функцию getInstance:
    return self::$instance === null ? new self : self::$instance;
    Спустя 84 сек.
    artoodetoo, кстати, я вот как раз себе пробовал это сделать, но так как нормального опыта реализации нету, то и создать описание такого типа не могу, ибо не очень понимаю что за чем следует.
    п.с. Знаю, что так делать очень по-ламерски, но тут уж пока как могу.
  • phpdude

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

    Spritz Июль 1, 2010, 10:13 д.п., спустя 20 минут 32 секунды

    ололол, нихуя у вас тут терки то
    Сапожник без сапог
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz Июль 1, 2010, 11:37 д.п., спустя 1 час 23 минуты 15 секунд

    phpdude, не надо тут гнать на нас, дай покидаться типа умными мыслями =)
  • artoodetoo

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

    Spritz Июль 1, 2010, 12:04 п.п., спустя 27 минут 32 секунды

    а если таким образом:
    - пишем хелловорлд
    - выносим текст на внешнее хранение, заводим для этого класс - получаем "модель"
    - обрамляем вывод текста полноценным html и выносим в отдельный типа шаблон. пишем класс чтения шаблонов — получаем представление
    - все, что не модель и не представление — это контроллер. оформляем роутинг в отдельный класс, чтение конфигурации, если надо реестр приложения и т.д

    точка-точка-запятая — вышла рожица кривая
    ручки-ножки-огуречик — вот и вышел человечек
    ιιlllιlllι унц-унц
  • Sinkler

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

    Spritz Июль 1, 2010, 12:17 п.п., спустя 13 минут 17 секунд


    а если таким образом:
    - пишем хелловорлд
    - выносим текст на внешнее хранение, заводим для этого класс - получаем "модель"
    - обрамляем вывод текста полноценным html и выносим в отдельный типа шаблон. пишем класс чтения шаблонов — получаем представление
    - все, что не модель и не представление — это контроллер. оформляем роутинг в отдельный класс, чтение конфигурации, если надо реестр приложения и т.д

    точка-точка-запятая — вышла рожица кривая
    ручки-ножки-огуречик — вот и вышел человечек

    в точку
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz Июль 1, 2010, 12:53 п.п., спустя 36 минут 3 секунды

    artoodetoo, спасибо за разъяснения. По сути я это себе так и представлял. Просто думал что ты имеешь виду "нарисовать" схему всего проекта, а не отдельного модуля. А у всего проекта кроме вьюшек-контроллеров-моделей есть ещё и системные фиговины, и вот тут и имею пока траблы с проектированием. Но намерен их победить :)
  • Sinkler

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

    Spritz Июль 1, 2010, 1:01 п.п., спустя 7 минут 3 секунды


    artoodetoo, спасибо за разъяснения. По сути я это себе так и представлял. Просто думал что ты имеешь виду "нарисовать" схему всего проекта, а не отдельного модуля. А у всего проекта кроме вьюшек-контроллеров-моделей есть ещё и системные фиговины, и вот тут и имею пока траблы с проектированием. Но намерен их победить :)

    именно из-за этих системных фиговин использую кейк, хотя сам начал писать что-то подобное, на вид немного страшное, но легкое и шустрое для мелочевки всякой
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz Июль 1, 2010, 2:31 п.п., спустя 1 час 30 минут 52 секунды

    Sinkler, вот и я сейчас этим занимаюсь… уже в который раз :). Пробую писать сам. И не только потому что нех делать. Но ещё и практика для меня тоже немаловажный фактор, а при написании своего практики будет вагон + конечно же моя лень берет своё :)
  • phpdude

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

    Spritz Июль 1, 2010, 2:36 п.п., спустя 4 минуты 48 секунд

    олололо2!!!
    Сапожник без сапог
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz Июль 1, 2010, 3:05 п.п., спустя 28 минут 40 секунд

    phpdude, хрен! олололо4-ый раз как минимум =)
  • sum

    Сообщения: 25 Репутация: N Группа: Кто попало

    Spritz Июль 2, 2010, 8:04 д.п., спустя 16 часов 58 минут 57 секунд

    Важные вещи говорит phpdude =))
  • phpdude

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

    Spritz Июль 2, 2010, 8:17 д.п., спустя 12 минут 48 секунд

    sum, а то!
    Сапожник без сапог

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