From: Maxx <de...@on...> - 2002-05-24 18:04:00
|
Все ответы - мои личные и выражают лишь мою точку зрения. Независимо от того, что в ответах употребляются императивы, данная информация не обязывает её использовать и несёт лишь консультативный характер. Это чтобы все всё правильно поняли. Теперь к делу: 1. Для чего предназначена система? Для построения веб-сайта (в идеале - любой направленности) и его управления. В подавляющем большинстве случаев администрирования не должно требоваться никакого другого стороннего ПО, т.е. система должна быть самодостаточной (хотя, здесь можно спорить). 2. Как она строится? Относительно независимые самоустанавливающиеся и самонастраивающиеся модули. Два "-щиеся" означает, что для установки модуля достаточно лишь скопировать его в каталог системы, после чего появятся соответствующие элементы меню в админском интерфейсе, где они могут быть активированы и включены в сайт. Модули должны быть максимально независимы (наверное более верным будет термин "плагин"), однако, так или иначе, потребуется использование общих библиотек, но этот вопрос легко решаем. 3. Какие функции осуществляются ядром? Авторизация, общий интерфейс, подключение плагинов и их вывод на пользователя (т.е. обработка клиентской части). Вроде это всё, и не более того. 4. Какие модули являются необходимыми для функционирования системы и, следовательно модут быть частично или полностью интегрированы в ядро? Никакие. Ядро - это ядро, модули - это модули. 5. Где данные-то хранить? и самое главное как с ними прозрачно работать? Для каждого модуля должен существовать набор обязательных функций (методов?). Нечто типа Сохранить_в_БД(), Сохранить_на_диске(). В этих функциях/методах нужно использовать абстрактную модель "хранилища". В случае с БД наверное стоит употреблять лишь те запросы, которые являются стандартом для большинства СУБД. ---------------------------------------------------------- Продолжу список: 6. Пользователи. Есть Админы, есть Юзеры. Наверное будет лучше всего реализовать систему ACL'ов и пользовательских групп для максимальной гибкости. Каждый пользователь может быть членом любого кол-ва групп, для которых определяются различные уровни доступа (смотреть : создавать) к различным модулям. Так же уровни доступа могут назначаться в личном порядке для каждого пользователя. 7. Для реализации клиентской части обязательно использование шаблонов. Я не знаю как работается с XML+XSLT, но наверное лучше использовать эту технологию. Стандарт как никак. 8. Мультиязыковость - обязательна. Предлагается использовать gettext. Удобно, просто, быстро. На текущий момент это всё. Как что придумаю - всяко напишу в сюду ;) |