Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Как получить имя дочернего класса внутри класса-родителя? [4]
Покинул форум
Сообщений всего: 88
Дата рег-ции: Сент. 2011 Откуда: Анапа
Помог: 0 раз(а)
etoYA, спасибо. у меня есть 4-ый уровень. в свое время не дошел до него)
----- Новое всегда пугает — даже того, кто это новое создает.
(RZA)
Eazy-E
Отправлено: 31 Мая, 2012 - 02:27:27
Гость
Покинул форум
Сообщений всего: 88
Дата рег-ции: Сент. 2011 Откуда: Анапа
Помог: 0 раз(а)
Сейчас почитал про паттерн HMVC, и кажется понял, что это именно то что мне нужно. Как я понял, согласно концепции HMVC, top-level модуль может передавать/получать какие либо значения (переменные, массивы) в модуль среднего уровня, который в свою очередь так-же может "общаться" с модулем нижнего уровня. Например, модуль верхнего уровня ничего не знает о модулях среднего уровня. Основной модуль передает некие параметры в Роутер, который в свою очередь, на основе переданных параметров подгружает соответствующие модули среднего уровня. В основном модуле динамически создаются экземпляры классов модуля среднего уровня. И, собственно, все! Скажите, я снова заблуждаюсь?
----- Новое всегда пугает — даже того, кто это новое создает.
(RZA)
sKaa
Отправлено: 31 Мая, 2012 - 03:51:30
Частый посетитель
Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011 Откуда: Россия г. Нижний Новгород
Помог: 25 раз(а)
[+]
Eazy-EТаки да! Снова заблуждаетесь! Я не понимаю уже, похоже вы везде ищете только :
Eazy-E пишет:
именно то что мне нужно
, а остальное как и не для вас!) - Печально!!!
MVC - в первую очередь это парадигма, суть которой заключается в том, чтобы разбить приложение на логические составляющие, каждая из которых будет выполнять свои задачи и не более того!
Model - (Модель)логика всего приложения, она вообще ничего не знает ни о контроллере, ни о view. Модель - это всевозможные модули авторизации, регистрации, новостей, комментариев, фотоальбомов, так же именно модель осуществляет всякие соединения с базами данных и вообще в гугле почитайте, что же такое МВЦ! Но тут нужно вам сразу пояснить, что в модели не должно быть ничего кроме php, или это уже не модель, т.е вывести все ваши <div class='error'> Неверный логин или пароль</div> это задача компонента View )))
View - (Печатная машинка), она отвечает только за вывод информации пользователю, HTML, RSS, XML ), итд. )
Controller - (Контроллер), связующее звено всего приложения, запросы от пользователя поступают именно в контроллер и именно он решает, в каком там формате View будет выводить весь хлам пользователю и не только это! Так-же внутри контроллера можно создать экземпляры нужных моделей, чтобы когда View начнет выводить информацию внутри шаблона, или что у вас там можно было спокойно юзать созданные ранее экземпляры модлей, допустим Users, как никак а авторизация почти везде нужна )))
И нету тут никаких модулей верхнего уровня и модулей нижнего уровня, три компонента приложения выполняют каждый свою задачу!
Сорри если, что-то не очень доходчиво )) Я сегодня что-то загулял и не совсем трезв )) (Добавление)
ПС : Роутер, это тоже некий компонент, который как-бы читает URL или что там прислал пользователь, и решает какой там из контроллеров запустить, а не :
Eazy-E пишет:
Основной модуль передает некие параметры в Роутер, который в свою очередь, на основе переданных параметров подгружает соответствующие модули среднего уровня
Отсюда можно предположить, что album это контрллер(class Controller_photos), photo это метод внутри класса контроллера который подгружает модель фотоальбома и выводит пользователю фоточки )) Именно роутер должен заниматься такими url и решать альбом или что-то другое ))
Покинул форум
Сообщений всего: 88
Дата рег-ции: Сент. 2011 Откуда: Анапа
Помог: 0 раз(а)
Это вы кажется меня не поняли. Суть MVC мне понятна, только зря писали. Я спросил конкретно про HMVC. Вот что я имел ввиду:
Где так называемая "триада" (верхняя), состоящая из MVC, обращается к другим триадам. Я уже не знаю как лучше вам объяснить... (Добавление)
Да, и опять же, под модулем я имел ввиду что-то конкретное. Например модуль "News" состоит из: NewsController, NewsModel, NewsView. Чем не модуль-то?
----- Новое всегда пугает — даже того, кто это новое создает.
(RZA)
sKaa
Отправлено: 31 Мая, 2012 - 05:30:20
Частый посетитель
Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011 Откуда: Россия г. Нижний Новгород
Помог: 25 раз(а)
[+]
Как это я вас не понял, если это я вам и рассказал про этот HMVC... Сути дела это не меняет, HMVC отличается от MVC тем, что любой контроллер в HMVC может запросить результат работы любого другого контроллера!
Т.е как-бы контроллер Users, может обратиться к контроллеру Login, и спросить у него форму авторизации если она ему понадобится ))
Грубо говоря, Users сам вызовет внутри себя контроллер Login, внутри Login отработают его модели, которые определят, может капчу пользователю пора в форму запилить, а то он тут с ошибками в паролях частит уже, далее Login отработает, вернет всё, что наработал контроллеру который и запрашивал результат его работы(Users), а Users передаст этот хлам во View который в свою очередь напечатает всё пользователю... - Я хз как тебе объяснять, по этому на пальцах уже пытаюсь )) (Добавление)
Eazy-E пишет:
"News" состоит из: NewsController, NewsModel, NewsView. Чем не модуль-то?
Короче, на основе полученного значения (язык страницы) переопределить шаблон для вывода страницы. Все это надо сделать, не касаясь кода из первого листинга. Как?
----- Новое всегда пугает — даже того, кто это новое создает.
(RZA)
DeepVarvar
Отправлено: 31 Мая, 2012 - 05:57:23
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Помог: 353 раз(а)
Eazy-E пишет:
Как?
Как-нибудь но не так.
Языки, темы, состояние сайта, сессии, куки - это все ОСНОВНОЕ ОКРУЖЕНИЕ.
Какие нна модули? Ядро спроектируй и сделай сначала.
Все вопросы про модули отпадут когда ядро будет сделано, а потом еще 100500 раз переделано. (Добавление)
Eazy-E пишет:
Добавить в БД поле 'page_lang'
Active Records/DB branch?
Eazy-E пишет:
язык страницы
Какой страницы? Язык юзер в профиле всю жизнь выбирал, а тут бац - страница на китайском!
Не, не - давай приведи мысли в порядок, испиши пару тетрадок по 96 листов, а там глядишь уже и картина общая сформируется...
Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011 Откуда: Россия г. Нижний Новгород
Помог: 25 раз(а)
[+]
Eazy-E, короче я скоро перестану вам, что либо подсказывать, это утомляет уже...
Вы ничего не слушаете, не читаете, а только пишите "говнокод" и приходите к нам c этими филькиными грамотами и спрашиваете "Как?"...
Вы либо прочтите, что-то сначала, либо делайте как умеете в процедурном или какой у вас там еще на вооружении стиль и забудьте о всех этих MVC, HMVC, паттернах, парадигмах и всем сопутствующем - значит рано вам еще за них браться, всё с опытом придет в т.ч и понимание всего этого...
Я вам двумя постами выше писал, что именно [М]одель в h[M]vc и в [M]vc должна заниматься всякими подключениями к базе, а вы тут присылаете контроллер+модель+view-всё-в-одном, потрудитесь хоть советы читать которые вам дают тут! :
$result=$db->query('SELECT * FROM 'pages' LIMIT 1');
Ну а тема хранения ШАБЛОНА в базе данных это вообще отдельный длинный холивар...
Только воистину мало-мальски понимающий в этом вопросе человек может так сделать...
В конце концов, пользуйтесь хотя бы гуглом "Где лучше хранить html шаблоны для php приложения?"
Думаю масса слов-подсказок сразу выпадет :
Folder Template, View ... (Добавление)
Вот представьте любое высоконагруженное приложение, представили? А теперь скажите, действительно стоит ~N тысяч раз в секунду(предположим такое кол-во обращений к серверу у нас из-за присутствия ~N тысяч человек online) обращаться, как вы думаете за чем? - За шаблоном! А куда обращаться? - В базу для любого кто обновил страницу, что таки не является самым быстрым и рациональным способом???
Печаль... Если вы уж так хотите html шаблоны разные, темы там всякие, почитайте что нибудь про шаблонизаторы, на этом форуме не раз уже их обсуждали, я даже какие-то свои храмые-наработки по этому поводу показывал. Если погуглить можно найти такие херовины как "Шаблонизатор Smarty"..
принцип MVC еще и в том, что модель содержит только логику, а view негде по сути взять html код который никак не должен приходить из модели или быть в контроллере , по этому происходит отделение php от html, php - модель, и возникает шаблон содержащий html код, а класс view загружает нужный в зависимости от данных модели и контролера и много еще чего.
Принцип шаблонов в том, что в корне сайта как правило лежит папка Template или View или как захотите называйте и в ней эти самые шаблоны страниц. Внутри контроллера когда это становится необходимо класс View открывает нужный шаблон, парсит там может какие-то тэги по типу как у вас '{content}' => $content, может какой-то свой нативный синтаксис запиливает, может даже сохраняет "скомпилированный" предыдущими действиями результат куда-нибудь в папку tmp под странным именем (4fc6e6ae39388.tmp), а при следующем обращении вместо того чтобы парсить всё снова, дабы не терять драгоценные доли секунд процессорного времени, он загружает "скомпилированный" файл из этой папки - сие чудо называется кэш!
Покинул форум
Сообщений всего: 88
Дата рег-ции: Сент. 2011 Откуда: Анапа
Помог: 0 раз(а)
Цитата:
Ну а тема хранения ШАБЛОНА в базе данных это вообще отдельный длинный холивар...
Только воистину мало-мальски понимающий в этом вопросе человек может так сделать...
В конце концов, пользуйтесь хотя бы гуглом "Где лучше хранить html шаблоны для php приложения?"
Думаю масса слов-подсказок сразу выпадет :
подразумевалось НАЗВАНИЕ шаблона, а не HTML код... (Добавление)
Мне жаль что вы столько текста почем зря написали... Такие вещи любому дураку ясны.
----- Новое всегда пугает — даже того, кто это новое создает.
(RZA)
sKaa
Отправлено: 31 Мая, 2012 - 10:39:38
Частый посетитель
Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011 Откуда: Россия г. Нижний Новгород
Помог: 25 раз(а)
[+]
Ничего не зря! Всё равно как я понял список имен доступных шаблонов хранится в базе, и даже если человек зашел на сайт впервые, никто и в мыслях не держал регистрироваться на этом ресурсе, всё равно ваше приложение с каждым обновлением страницы лезет в базу, дабы выдать без того понятную вещь!!! default.tpl - или как-то так !! Так что к вашему "коду" этот случай тоже вполне применим, хотя и не с таким размахом, как мне с пьяну показалось...
Да, кстати
"SELECT * FROM '....' ...." - по моему - это моветон..
Eazy-E
Отправлено: 31 Мая, 2012 - 11:18:57
Гость
Покинул форум
Сообщений всего: 88
Дата рег-ции: Сент. 2011 Откуда: Анапа
Помог: 0 раз(а)
Вы издеваетесь что-ли? Конечно же скрипт лезет в базу, блин, откуда он получает содержимое страницы?! Содержимое сбрасывается в memcache, в последствии оттуда и берется (в обход БД). Не делайте из меня дурака, бога ради. А то, что в бд хранится имя шаблона.. ну и что?! Если поле с именем шаблона пустое, то скрипт грузит дефолтный шаблон. Вполне распространенная практика, разрешать пользователю CMS использовать отдельный шаблон для страницы. Стоит так же заметить, что это не шаблон целого сайта, а кусок HTML кода, который отвечает конкретно за вывод "Custom Page". И все же...
Цитата:
Всё равно как я понял список имен доступных шаблонов хранится в базе, и даже если человек зашел на сайт впервые, никто и в мыслях не держал регистрироваться на этом ресурсе, всё равно ваше приложение с каждым обновлением страницы лезет в базу, дабы выдать без того понятную вещь!!!
Я ни это имел ввиду. Я не знаю какими шаблонизаторами вы пользуетесь, но моем шаблонизаторе такая структура шаблонов:
main.tpl - основной шаблон сайта
custom.pages.tpl - шаблон вывода "статической страницы" (в данном случае - дефолтный)
и так далее.....
----- Новое всегда пугает — даже того, кто это новое создает.
(RZA)
sKaa
Отправлено: 31 Мая, 2012 - 11:49:14
Частый посетитель
Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011 Откуда: Россия г. Нижний Новгород
Помог: 25 раз(а)
[+]
Eazy-E пишет:
Я не знаю какими шаблонизаторами вы пользуетесь, но моем шаблонизаторе такая структура шаблонов:
main.tpl - основной шаблон сайта
custom.pages.tpl - шаблон вывода "статической страницы" (в данном случае - дефолтный)
и так далее.....
Прикреплено изображение (Нажмите для увеличения)
Eazy-E
Отправлено: 31 Мая, 2012 - 11:57:44
Гость
Покинул форум
Сообщений всего: 88
Дата рег-ции: Сент. 2011 Откуда: Анапа
Помог: 0 раз(а)
(Добавление)
Цитата:
а при следующем обращении вместо того чтобы парсить всё снова, дабы не терять драгоценные доли секунд процессорного времени, он загружает "скомпилированный" файл из этой папки - сие чудо называется кэш!
Спасибо тебе. Уже все есть. Memcache, Xcache, JSON, files. Выбирайте, что вам больше нравится? Раз уж отошли от темы, и начали флудить.
----- Новое всегда пугает — даже того, кто это новое создает.
(RZA)
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.