Форум → Программирование → PHP для идиотов → Основа CMS
Основа CMS
Страницы: ← Предыдущая страница • Следующая страница →
-
-
21 августа 2008 г. 17:28, спустя 18 минут 4 секунды
копированием папки модуля
а у меня 3 папки т.к. MVCkillich, дембельнулся? :)
Не нах. Служу :)Рубист с большой буквы Г. Серый кардинал кулинарного блога open-cook.ru -
21 августа 2008 г. 17:33, спустя 4 минуты 41 секунду
т.к. MVC
как это работает? я имею ввиду в твоей цмс а не мвц в целом -
21 августа 2008 г. 17:39, спустя 6 минут 20 секунд
моё видение системы привилегий вот тут
http://pyha.ru/forum/topic/274.msg7803#msg7803 -
21 августа 2008 г. 17:45, спустя 5 минут 54 секунды
копированием папки модуля
а у меня 3 папки т.к. MVC
Минимум две должно быть, контроллер+модель и шаблон! Лучше три :) ׳, у тебя обработка и вывод в одном файле? ;) -
21 августа 2008 г. 17:53, спустя 7 минут 55 секунд
Идея не моя - основа от Ruby on Rails, MVC и SUN.
В совокупности выглядит так:
1. Существует единая точка входа в систему- пусть для наглядности это будет index.php
2. Здесь несколько основных элементов - контроль правовой политики, обработка аргументов и запуск соответствующего контроллера.
3. Как организован правовой контроль я уже объяснял.
1. Определяется зарегин ли юзверь.
2. определяется основной массив информации о нем.
3. согласно массиву прав - дается или не дается доступ к дальнейшему выполнению скрипта (т.е. проверка на доступ к контроллеру и конкретному действию).
схема с единой точной проверки прав при входе в приложение я услыхал от SUN на конференции в москве. вот и себе сделал аналог. Это главная точка проверки прав.
есть минусы - ломанешь ее - ломанешь - все. с другой стороны плюс - есть только одно место на котором нужно сконцентрировать внимание для организации контроля.
4. Дальше идет MVC. вызывается контроллер - он формирует согласно бизнесс логике данные (на основе модели) - передает в файлы Вида - это файл - макет (layout.php), т.е. основные составляющие страницы(остов) и файлы tmplates.php - отрисовывающие отдельные элементы страницы.
5. в Ruby on Rails схватил идею создания своей библиотечки helper'ов - выше там уже глумились над функцией to_action(), кроме того из руби рельсов взята идея того, что действия контроллеров делятся на 2 типа - 1.действия формирующие страницы с контентом и 2.действия обработчики данных с последующим перенаправлением на действия 1го типа.
Поскольку красной ниткой по МВЦ идет контроль над возможностью выполнить пользователем действие некоторого контроллера - естественным решением моим было сделать ассоциации Контроллер - Действие.
По умолчанию пользователю запрещено выполнять все не разрешенные действия.
Поскольку появились ассоциации Контроллер - Действие (массив разрешенных действий) я решил хранить их в базе - в виде serialize строк. Что на мой взгляд удобно. Достаточно извлечь строку прав пользователя из БД, проверить наличие разрешения и принять решение о доступе его к действию контроллера.
Причем этот массив прав можно получить и в виде и в контроллере - поэтому удобно формировать данные и элементы вида согласно правовой политики.Рубист с большой буквы Г. Серый кардинал кулинарного блога open-cook.ru -
21 августа 2008 г. 17:54, спустя 1 минуту 11 секунд
контроллер+модель у меня в одном файле,
а для шаблона есть отдельная папка, но все это в одной папке модуля, которая копируется)
зачем контроллер и модель разделять? -
21 августа 2008 г. 17:55, спустя 1 минуту
http://pyha.ru/forum/topic/274.msg7803#msg7803
о сем посте знаю и не забываю. порою даж перечитываюРубист с большой буквы Г. Серый кардинал кулинарного блога open-cook.ru -
21 августа 2008 г. 17:57, спустя 2 минуты 13 секунд
контроллер и модель разделять
мля, действительно нах эти придурки в 1970 году это придумали. Наверно по обкурке как и йа :)
А если серьезно - дело твое - мож и шаблоны туда же пихать если тебе так удобно. главное соблюсти концепциюРубист с большой буквы Г. Серый кардинал кулинарного блога open-cook.ru -
21 августа 2008 г. 18:03, спустя 5 минут 46 секунд
а я слышал что если иметь хвост то тогда легче держать равновесие нагнувшись вперед, отращу ка я хвост
а еще чтобы плавать неплохо иметь жабры и плавники поэтому жабры на шею а плавники под мышки
а крылья на спину чтоб летать
еще неплохо было бы щупальца но я просто незнаю куда еще их сунуть
это был краткий пересказ того что killich сделал со своей системой
я не говорю что все это хреново я говорю о том что все должно быть на своем месте
в нагруженных проектах с несколькими разработчиками МВЦ оправдано увеличивает скорость работы и разработки
в нагруженных проектах одна точка входа это глупость потому что это тонкое место и там будет затор, надо как минимум отдельную для аджакас запросов
экшены замапленые на свой класс это тоже хорошо про наличии огромного количества страниц которые нельзя класифицировать и подогнать под один шаблон
кеширование на всех стадиях тоже хорошо пока ты не начинаешь кешировать кеш и для того чтобы достать кеш тратишь больше ресурса чем на повторный расчето сем посте знаю и не забываю. порою даж перечитываю
могу реализацией поделиться -
21 августа 2008 г. 18:05, спустя 1 минуту 45 секунд
$query = mysql_query('SELECT * FROM test');
$test = mysql_fetch_assoc($query);
$tpl = new template('test.tpl');
$tpl->set('title', $test['title']);
где тут модель а где контроллер? -
-
21 августа 2008 г. 18:10, спустя 2 минуты 8 секунд
эммм, так вид этож шаблон? test.tpl
куда делся контроллер!? надобы статейку почитать как это работает и зачем оно надо -
21 августа 2008 г. 18:12, спустя 1 минуту 17 секунд
контроллера нет, только модель и вид
И это есть нехорошо :) -
21 августа 2008 г. 18:14, спустя 2 минуты 38 секунд
в нагруженных проектах одна точка входа это глупость потому что это тонкое место и там будет затор
это ты разработчику рельсов расскажи, который в 2005 получил премию за лучший фреймворк и про файл деспетчер, который именно и является той точкой.
экшены замапленые на свой класс это тоже хорошо про наличии огромного количества страниц которые нельзя класифицировать и подогнать под один шаблон
проблема решается выбором макетов и шаблонов отображения, на то он и вид.
кеширование на всех стадиях тоже хорошо пока ты не начинаешь кешировать кеш и для того чтобы достать кеш тратишь больше ресурса чем на повторный расчет
это откудо? я об этом что то упоминал? Просто поясни с чем связано, а то не врублюсь к чему привязать.Рубист с большой буквы Г. Серый кардинал кулинарного блога open-cook.ru
Страницы: ← Предыдущая страница • Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!