Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проектирование CMS\CMF, Пишу велосипед и очень нуждаюсь в помощи 
:(
    Опции темы
Just123
  Дата 24.7.2010, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 9.12.2007
Где: localhost

Репутация: нет
Всего: нет



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

Собственно, проблема заключается в проектировании CMS и конкретно модульной составляющей.
Я себе это примерно представляю так:

Файловая структура на примере приложения блога и галереи.:
Код

/application/  - Корень приложения
/application/components  - Компоненты приложения
/application/components/Blog/ - Компонент Blog
/application/components/Blog/views - Шаблоны компонента Blog
/application/components/Blog/extension - Расширения для компонента Blog
/application/components/Gallery/ - Компонент Gallery
/application/components/Gallery/views - Шаблоны компонента Gallery
/application/components/Gallery/extension - Расширения для компонента Gallery
/application/modules - Модули
/application/classes   - Классы
/application/templates - Основной шаблон\макет
/application/templates/errors - Шаблоны ошибок
/application/languages/ - Языки


Компонент, это  то, из чего состоит непосредственно приложение.
Пример: блог, форум, галерея.

Расширение компонента - это соответственно модуль\плагин непосредственно для изменения или расширения функциональности компонента.
Пример: Смайлы в комментариях к блогу, автопостиг сообщений при создании топика и т.д.


Модуль - небольшие модули для всей системы, можно использовать во всех компонентах или только в некоторых или только на определённых страницах.
Пример: опрос, вывод случайной цитаты, аналоговые часы и т.д.

Теперь опишу как всё это должно работать на практике.

URL формируется следующего вида:
http://site.ru/index.php/компонент/метод_компонента/параметр1/параметр2/параметрN

Ход выполнения приложения вкратце.
1) Все обращения к приложению проходят через index.php, который в свою очередь инициализирует  базовые элементы системы.
2) Роутер анализирует URL и загружает требующийся компонент или метод компонента.
3) Далее, контроллер компонента(наследует контроллер ядра)  загружает все требуемые классы, модули и прочие ресурсы, которые требуются для выполнения запроса.
4) Далее с помощью отображения формируется страница которая передаётся в браузер.


Но, почему-то мне всё это кажется немного сложно и запутанно. И вообще, имеет ли смысл делать расширения компонентов или возможно стоит использовать для этого модули? 

Очень интересно ваше мнение и очень нуждаюсь в советах и рекомендациях. Большущее спасибо заранее.

Это сообщение отредактировал(а) Just123 - 25.7.2010, 00:48
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0352 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.