Форум → Программирование → PHP для идиотов → (h)mvc patterns
(h)mvc patterns
-
-
Июль 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 можно переписать и не юзать &, а то я его постоянно забываю ) -
Июль 1, 2010, 9:36 д.п., спустя 3 минуты 21 секунду
а для чего этот синглтон?
я бы посоветовал начать MVC с описания вызовов, а не реализации. условно. от точки входа, до представления.ιιlllιlllι унц-унц -
Июль 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, кстати, я вот как раз себе пробовал это сделать, но так как нормального опыта реализации нету, то и создать описание такого типа не могу, ибо не очень понимаю что за чем следует.
п.с. Знаю, что так делать очень по-ламерски, но тут уж пока как могу. -
Июль 1, 2010, 10:13 д.п., спустя 20 минут 32 секунды
ололол, нихуя у вас тут терки тоСапожник без сапог -
Июль 1, 2010, 11:37 д.п., спустя 1 час 23 минуты 15 секунд
phpdude, не надо тут гнать на нас, дай покидаться типа умными мыслями =) -
Июль 1, 2010, 12:04 п.п., спустя 27 минут 32 секунды
а если таким образом:
- пишем хелловорлд
- выносим текст на внешнее хранение, заводим для этого класс - получаем "модель"
- обрамляем вывод текста полноценным html и выносим в отдельный типа шаблон. пишем класс чтения шаблонов — получаем представление
- все, что не модель и не представление — это контроллер. оформляем роутинг в отдельный класс, чтение конфигурации, если надо реестр приложения и т.д
точка-точка-запятая — вышла рожица кривая
ручки-ножки-огуречик — вот и вышел человечекιιlllιlllι унц-унц -
Июль 1, 2010, 12:17 п.п., спустя 13 минут 17 секунд
а если таким образом:
- пишем хелловорлд
- выносим текст на внешнее хранение, заводим для этого класс - получаем "модель"
- обрамляем вывод текста полноценным html и выносим в отдельный типа шаблон. пишем класс чтения шаблонов — получаем представление
- все, что не модель и не представление — это контроллер. оформляем роутинг в отдельный класс, чтение конфигурации, если надо реестр приложения и т.д
точка-точка-запятая — вышла рожица кривая
ручки-ножки-огуречик — вот и вышел человечек
в точку -
Июль 1, 2010, 12:53 п.п., спустя 36 минут 3 секунды
artoodetoo, спасибо за разъяснения. По сути я это себе так и представлял. Просто думал что ты имеешь виду "нарисовать" схему всего проекта, а не отдельного модуля. А у всего проекта кроме вьюшек-контроллеров-моделей есть ещё и системные фиговины, и вот тут и имею пока траблы с проектированием. Но намерен их победить :) -
Июль 1, 2010, 1:01 п.п., спустя 7 минут 3 секунды
artoodetoo, спасибо за разъяснения. По сути я это себе так и представлял. Просто думал что ты имеешь виду "нарисовать" схему всего проекта, а не отдельного модуля. А у всего проекта кроме вьюшек-контроллеров-моделей есть ещё и системные фиговины, и вот тут и имею пока траблы с проектированием. Но намерен их победить :)
именно из-за этих системных фиговин использую кейк, хотя сам начал писать что-то подобное, на вид немного страшное, но легкое и шустрое для мелочевки всякой -
Июль 1, 2010, 2:31 п.п., спустя 1 час 30 минут 52 секунды
Sinkler, вот и я сейчас этим занимаюсь… уже в который раз :). Пробую писать сам. И не только потому что нех делать. Но ещё и практика для меня тоже немаловажный фактор, а при написании своего практики будет вагон + конечно же моя лень берет своё :) -
-
-
-
Пожалуйста, авторизуйтесь, чтобы написать комментарий!