ФорумПрограммированиеPHP для идиотов → Основа CMS

Основа CMS

  • vasa_c

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

    Spritz 21 августа 2008 г. 9:10, спустя 6 минут 58 секунд

    killich, дембельнулся? :)
  • killich

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

    Spritz 21 августа 2008 г. 9:28, спустя 18 минут 4 секунды

    копированием папки модуля

    а у меня 3 папки т.к. MVC

    killich, дембельнулся? :)

    Не нах. Служу :)
    Рубист с большой буквы Г. Серый кардинал кулинарного блога open-cook.ru
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 21 августа 2008 г. 9:33, спустя 4 минуты 41 секунду

    т.к. MVC

    как это работает? я имею ввиду в твоей цмс а не мвц в целом
  • Trej Gun

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

    Spritz 21 августа 2008 г. 9:39, спустя 6 минут 20 секунд

    моё видение системы привилегий вот тут
    http://pyha.ru/forum/topic/274.msg7803#msg7803
  • sap

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

    Spritz 21 августа 2008 г. 9:45, спустя 5 минут 54 секунды


    копированием папки модуля

    а у меня 3 папки т.к. MVC

    Минимум две должно быть, контроллер+модель и шаблон! Лучше три :) ׳, у тебя обработка и вывод в одном файле? ;)
  • killich

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

    Spritz 21 августа 2008 г. 9: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
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 21 августа 2008 г. 9:54, спустя 1 минуту 11 секунд

    контроллер+модель у меня в одном файле,
    а для шаблона есть отдельная папка, но все это в одной папке модуля, которая копируется)
    зачем контроллер и модель разделять?
  • killich

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

    Spritz 21 августа 2008 г. 9:55, спустя 1 минуту

    http://pyha.ru/forum/topic/274.msg7803#msg7803

    о сем посте знаю и не забываю. порою даж перечитываю
    Рубист с большой буквы Г. Серый кардинал кулинарного блога open-cook.ru
  • killich

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

    Spritz 21 августа 2008 г. 9:57, спустя 2 минуты 13 секунд

    контроллер и модель разделять

    мля, действительно нах эти придурки в 1970 году это придумали. Наверно по обкурке как и йа :)

    А если серьезно - дело твое - мож и шаблоны туда же пихать если тебе так удобно. главное соблюсти концепцию
    Рубист с большой буквы Г. Серый кардинал кулинарного блога open-cook.ru
  • Trej Gun

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

    Spritz 21 августа 2008 г. 10:03, спустя 5 минут 46 секунд

    а я слышал что если иметь хвост то тогда легче держать равновесие нагнувшись вперед, отращу ка я хвост
    а еще чтобы плавать неплохо иметь жабры и плавники поэтому жабры на шею а плавники под мышки
    а крылья на спину чтоб летать
    еще неплохо было бы щупальца но я просто незнаю куда еще их сунуть

    это был краткий пересказ того что killich сделал со своей системой
    я не говорю что все это хреново я говорю о том что все должно быть на своем месте
    в нагруженных проектах с несколькими разработчиками МВЦ оправдано увеличивает скорость работы и разработки
    в нагруженных проектах одна точка входа это глупость потому что это тонкое место и там будет затор, надо как минимум отдельную для аджакас запросов
    экшены замапленые на свой класс это тоже хорошо про наличии огромного количества страниц которые нельзя класифицировать и подогнать под один шаблон
    кеширование на всех стадиях тоже хорошо пока ты не начинаешь кешировать кеш и для того чтобы достать кеш тратишь больше ресурса чем на повторный расчет

    о сем посте знаю и не забываю. порою даж перечитываю

    могу реализацией поделиться
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 21 августа 2008 г. 10:05, спустя 1 минуту 45 секунд


    $query = mysql_query('SELECT * FROM test');
    $test = mysql_fetch_assoc($query);
    $tpl = new template('test.tpl');
    $tpl->set('title', $test['title']);


    где тут модель а где контроллер?
  • Trej Gun

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

    Spritz 21 августа 2008 г. 10:08, спустя 3 минуты 22 секунды

    контроллера нет, только модель и вид
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 21 августа 2008 г. 10:10, спустя 2 минуты 8 секунд

    эммм, так вид этож шаблон? test.tpl
    куда делся контроллер!? надобы статейку почитать как это работает и зачем оно надо
  • sap

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

    Spritz 21 августа 2008 г. 10:12, спустя 1 минуту 17 секунд

    контроллера нет, только модель и вид

    И это есть нехорошо :)
  • killich

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

    Spritz 21 августа 2008 г. 10:14, спустя 2 минуты 38 секунд


    в нагруженных проектах одна точка входа это глупость потому что это тонкое место и там будет затор


    это ты разработчику рельсов расскажи, который в 2005 получил премию за лучший фреймворк и про файл деспетчер, который именно и является той точкой.


    экшены замапленые на свой класс это тоже хорошо про наличии огромного количества страниц которые нельзя класифицировать и подогнать под один шаблон

    проблема решается выбором макетов и шаблонов отображения, на то он и вид.


    кеширование на всех стадиях тоже хорошо пока ты не начинаешь кешировать кеш и для того чтобы достать кеш тратишь больше ресурса чем на повторный расчет


    это откудо? я об этом что то упоминал? Просто поясни с чем связано, а то не врублюсь к чему привязать.
    Рубист с большой буквы Г. Серый кардинал кулинарного блога open-cook.ru

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