Этот сайт не наркоманов. Это сайт программистов.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Мы в твиттере!
Мы вконтакте!
Мы на яндексе!

Краснодарское время: 24 Май, 2012, 09:58:50

Страниц: [1]
Печать
Автор Тема: (h)mvc patterns  (Прочитано 394 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
sum    ↓ 
01 Июль, 2010, 08:45:31
НЕ ХУЕТА! ХУЕТА!


Карма: 0
Сообщений: 25
Сила слова: 0

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

select * from life
sum    ↓ 
01 Июль, 2010, 09:33:35 , спустя 48 минут 4 секунды
НЕ ХУЕТА! ХУЕТА!


Карма: 0
Сообщений: 25
Сила слова: 0

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

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

для того чтобы не описывать переменную для объекта данного класса в теле программы вообще. Когда необходимо - достаточно вызвать a::getInstance() и мы получим нужый нам объект. Причем объект будет один и тот же - обратите внимание на модификатор static в описании метода.
 
$a = & a::getInstance();
 
PHP
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 можно переписать и не юзать &, а то я его постоянно забываю )
Записан

select * from life
artoodetoo    ↓ 
01 Июль, 2010, 09:36:56 , спустя 3 минуты 21 секунду
НЕ ХУЕТА! ХУЕТА!

с особым цинизмом
Группа: в ухо

Карма: 124
Сообщений: 3805
Сила слова: 3.26

а для чего этот синглтон?
я бы посоветовал начать MVC с описания вызовов, а не реализации. условно. от точки входа, до представления.
Записан
Givi    ↓ 
01 Июль, 2010, 09:53:20 , спустя 16 минут 24 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 42
Сообщений: 2305
Сила слова: 1.82

sum, ну коли так, то для 5 пыхи и __CLASS__ юзать не стоить. Есть для этого функции спецовые (get_class...).
 
А вообще вот такой (кстати, стандартный из документации) у меня синглтон:
 
PHP
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:
PHP
return self::$instance === null ? new self : self::$instance;
Спустя 1 минуту 24 секунды добавил
artoodetoo, кстати, я вот как раз себе пробовал это сделать, но так как нормального опыта реализации нету, то и создать описание такого типа не могу, ибо не очень понимаю что за чем следует.
п.с. Знаю, что так делать очень по-ламерски, но тут уж пока как могу.
Записан

Все, что говорят другие - неправда! До тех пор, пока ты сам в это не поверишь.
Если человек дурак, то... чур это не я!
phpdude    ↓ 
01 Июль, 2010, 10:13:52 , спустя 20 минут 32 секунды
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 344
Сообщений: 20789
Сила слова: 1.65

ололол, нихуя у вас тут терки то
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
Givi    ↓ 
01 Июль, 2010, 11:37:07 , спустя 1 час 23 минуты 15 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 42
Сообщений: 2305
Сила слова: 1.82

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

Все, что говорят другие - неправда! До тех пор, пока ты сам в это не поверишь.
Если человек дурак, то... чур это не я!
artoodetoo    ↓ 
01 Июль, 2010, 12:04:39 , спустя 27 минут 32 секунды
НЕ ХУЕТА! ХУЕТА!

с особым цинизмом
Группа: в ухо

Карма: 124
Сообщений: 3805
Сила слова: 3.26

а если таким образом:
- пишем хелловорлд
- выносим текст на внешнее хранение, заводим для этого класс - получаем "модель"
- обрамляем вывод текста полноценным html и выносим в отдельный типа шаблон. пишем класс чтения шаблонов — получаем представление
- все, что не модель и не представление — это контроллер. оформляем роутинг в отдельный класс, чтение конфигурации, если надо реестр приложения и т.д
 
точка-точка-запятая — вышла рожица кривая
ручки-ножки-огуречик — вот и вышел человечек
Записан
Sinkler    ↓ 
01 Июль, 2010, 12:17:56 , спустя 13 минут 17 секунд
НЕ ХУЕТА! ХУЕТА!

Похуй, пляшем!
Группа: Джедаи

Карма: 73
Сообщений: 6804
Сила слова: 1.07


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

Givi    ↓ 
01 Июль, 2010, 12:53:59 , спустя 36 минут 3 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 42
Сообщений: 2305
Сила слова: 1.82

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

Все, что говорят другие - неправда! До тех пор, пока ты сам в это не поверишь.
Если человек дурак, то... чур это не я!
Sinkler    ↓ 
01 Июль, 2010, 01:01:02 , спустя 7 минут 3 секунды
НЕ ХУЕТА! ХУЕТА!

Похуй, пляшем!
Группа: Джедаи

Карма: 73
Сообщений: 6804
Сила слова: 1.07


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

Givi    ↓ 
01 Июль, 2010, 02:31:54 , спустя 1 час 30 минут 52 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 42
Сообщений: 2305
Сила слова: 1.82

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

Все, что говорят другие - неправда! До тех пор, пока ты сам в это не поверишь.
Если человек дурак, то... чур это не я!
phpdude    ↓ 
01 Июль, 2010, 02:36:42 , спустя 4 минуты 48 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 344
Сообщений: д-о-х-у-я!
Сила слова: 1.65

олололо2!!!
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
Givi    ↓ 
01 Июль, 2010, 03:05:22 , спустя 28 минут 40 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 42
Сообщений: 2305
Сила слова: 1.82

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

Все, что говорят другие - неправда! До тех пор, пока ты сам в это не поверишь.
Если человек дурак, то... чур это не я!
sum    ↓ 
02 Июль, 2010, 08:04:19 , спустя 16 часов 58 минут 57 секунд
НЕ ХУЕТА! ХУЕТА!


Карма: 0
Сообщений: 25
Сила слова: 0

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

select * from life
phpdude    ↓ 
02 Июль, 2010, 08:17:07 , спустя 12 минут 48 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 344
Сообщений: д-о-х-у-я!
Сила слова: 1.65

sum, а то!
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
Страниц: [1]
Печать
 

Перейти в: