|
|
|
Wowa |
|
||||
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
Давайте продумаем этот момент. Очень к интересным вещам можно прийти.. |
||||
|
|||||
xolod |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 148 Регистрация: 24.5.2005 Где: Когда: Что: Репутация: нет Всего: 13 |
Кажется, все хором за CMS.
Я здесь новичек и ко мне вряд ли кто прислушается, но... может быть стоит разрабатывать модули, способные существовать отдельно (в базовом комплекте: модуль, админ-модуль к нему, набор БД-оберток), а на основе этих модулей паралелльно разрабатывать готовую CMS, для тех, кто, скажем так, не хочет заморачиваться на программировании-построении дизайна-настройке.. "Имеем два продукта под одной торговой маркой" © Гейтс Б. Один -- для тех, кому нужен комплект модулей для быстрого встраивания в свой сайт и чтобы меньше писать кода. Второй -- для тех, у кого сайта нет, программировать не умеет, дизайнить не умеет, а сайт хочет. Без заморочек. Быстро и просто. |
|||
|
||||
Irokez |
|
|||
индеец Профиль Группа: Участник Клуба Сообщений: 1180 Регистрация: 20.10.2004 Репутация: нет Всего: 53 |
CMF - Content Management Framework - конструктор конструкторов - то на чем строится CMS, так что вопрос CMS vs CMF - по-моему неуместный, любая CMS базируется на фреймворке, поэтому нужно определиться что будет в его комплекте
|
|||
|
||||
skalex |
|
|||
Хороший человек Профиль Группа: Участник Клуба Сообщений: 895 Регистрация: 2.4.2004 Репутация: нет Всего: 23 |
Важнейшая вещь в CMF - это грамотно заложить основу. CMF для меня - это минимальный(!) набор компонентов, которые реализуют модель работы веб-приложения. Абстракция, другими словами... CMF можно реализовать за 2-3 дня, а на разработку CMS могут уйти месяцы, но поддержку и развитие - годы!
Причем CMF не должна быть ориентирована именно для написания CMS, она должна быть как основа для написания веб-приложения любого уровня. Вот список компонентов моей CMF: 1) класс ядра Core 2) класс управления ядром CoreController 3) класс-анализатор конфигурации ConfigParser 4) абстрактный класс контроллера AbstractController (интерфейс) 5) класс стандартного контроллера Controller (для наследования уже конкретными контроллерами для реального веб-приложения) 6) класс формирования оформления (темы, скина) веб-приложения SkinController (наследуется от Controller) 7) Plugin - абстракнтый класс плагина (расширения) Замечание: Контроллер - это класс, который непосредственно осуществляет генерацию контента запрошенной страницы. Например, контроллер новостей (NewsController), контроллер баннерной системы (BannerController) или контроллер авторизации (AuthController). С помощью контроллера также можно осуществлять переадресацию и любые другие механизмы. Этих компонентов мне достаточно, чтобы начать разработку любого веб-приложения. Все остальное (шаблонный движок, класс для работы с БД и т. д.) - это плагины, которые проектируются согласно концепции, закладываемой классом Plugin. Естественно допускается возможность подключения любой внешней библиотеки, которую можно использовать либо в чистом виде, либо в интегрированном. Например, Smarty я реализую также в виде самописного контроллера. |
|||
|
||||
Sardar |
|
|||
Бегун Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: нет Всего: 317 |
Mace интресная концепция контроллеров Приведи пример интерфейса базового Controller и любого потомка.
-------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
skalex |
|
||||||||
Хороший человек Профиль Группа: Участник Клуба Сообщений: 895 Регистрация: 2.4.2004 Репутация: нет Всего: 23 |
Конструкция контроллеров до безобразия проста. Я специально старался сделать ее максимально простой. Покажу как я создал контроллер, использующий шаблоны Smarty.
Код абстрактного контроллера AbstractController.
Код Smarty-контроллера TController.
Код реального контроллера StaticController (контроллер статических страниц). Просто подгружает статический шаблон.
Код реального контроллера NewsController (контроллер новостей). Получает список новостей, подготавливает данные для шаблона и загружает шаблон.
|
||||||||
|
|||||||||
Opik |
|
|||
Эксперт Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
разве в PHP есть множественное наследие?
|
|||
|
||||
Sardar |
|
|||
Бегун Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: нет Всего: 317 |
Opik а где ты видишь множественное наследование?
Mace идею понял -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
Opik |
|
|||
Эксперт Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
Sardar
Может я конечно что то путаю... но 2 extends 1 3 extends 2 разве не множ наследие? ) *стыдна* ну раньше так низя было... |
|||
|
||||
Sardar |
|
|||
Бегун Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: нет Всего: 317 |
Нет это не множественное наследование Множественное это:
class 1 class 2 class 3 extends 1, 2 Другими словами тип не расширяеться, а вноситься новый, совершенно левый тип. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
Opik |
|
|||
Эксперт Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: нет Всего: 55 |
Sardar
ок, спасибо. что пояснил |
|||
|
||||
Wowa |
|
|||
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
||||
|
||||
Semenov |
|
|||
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 13.10.2006 Где: г. Набережные Чел ны Репутация: нет Всего: нет |
Идея хорошая. Это есть MVC. Самая актуальная структура, ихмо.
|
|||
|
||||
Sardar |
|
|||
Бегун Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: нет Всего: 317 |
MVC позволяет сделать реально гибкий и расширяемый движок. Тоже своё поделие как MVC фреймворк пишу Есть интерфейс Controller, способный инициализироваться и порождать разные view, почти всегда это TextStreamView, который генерит просто вёрстку текстом (потоком документа). Контроллер отвечает за любой функционал, например генерация меню с "хлебными крошками", выдернуть новости с конкретной даты или выдать статичную страницу. Есть PageComposer, в который регистрируем все контроллеры по функциональному тегу (content, widget, navigation etc). Штука простая, выполняет шаблон генерируя события-метки в шаблоне (header, menu, content etc). Используется только для полных (X)HTML страниц, ибо одна страница содержит массу контроллеров, которые взаимодействуют друг с другом. Например контроллер с тегом content может послать сообщение всем контроллерам с тегом navigation о том, что он сейчас будет показывать (ресурс). Для XML сервисов PageComposer не используется, ибо почти всегда выполняется ровно один контроллер. Есть RequestDispatcher, задача которого рассмотреть входные параметры и выбрать какой процесс запустить. При этом работаем не только с REQUEST_URI, а вообще с чем угодно, т.е. без mod_rewrite и подобных трансляторов продолжаем работать (что конечно плохо). Подобная гибкость конечно заставила возложить генерацию ссылок на ResourceMap, который всегда генерит правильные ссылки. Оба класса используют XML схемы, разумеется кешируемые. Процесс сдержит информацию как инициализировать PageComposer и какие контроллеры к нему добавить. Затем страница отрабатывает и рисуется. За один запрос отрабатывает один процесс. Так сделал я. Код ещё отшлифовывается и документируется, будет в ближайшие две недели положен в http://svn.vingrad.ru/svn/vijio/ImaEngine/ На lib/view не обращаем внимания, устарели. Дерево view обьектов оказалось не удобным. Сейчас используются множества помеченные тегами, что гибче. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
ImamMahdi |
|
|||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 21.6.2007 Репутация: нет Всего: нет |
Я вообще считаю, ядро должно состоять из одного базового класса, в которому не нужно ни интерфейсов, ни абстракция.
Суть этого базового класса - подключение всего остального: драйвера (конфигов, бд, etc), контроллеры модулей и т.п. Также ядро должно организовывать взаимодействие между контроллерами модулей - этакое подобие взаимодействия уровней в сетевых протоколах, например TPC/IP |
|||
|
||||
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Vingrad CMS | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |