Архитектура CMS

timer0x01

Новичок
Архитектура CMS

Здравствуйте!

Меня интересует идея реализации архитектуры CMS (модульность и разширяемость) в возможно самом простом виде.
Т.е. скажите пожалуйста с какой CMS начать изучать её код с целью понятия её логики и вообше смъсла CMS вцелом. Я начинающий в PHP так-что мне надо возможно самая обыкновенная CMS на принципе модульности .. мне важно понять идею.

Я читал различные статии и так далее, но там не написано про архитектуру... Мне надо статии в которых разказывается о структуре CMS или же обыкновенная CMS в которой понятен (для начинающего) код и реализация идеи.

Спасибо
 

Апокалипсис

тех дир matras.ru
timer0x01
В поиск! Даже по названию твоей темы архитектура cms находится много чего интересного!
 

boombick

boombick.org
Это грязный пиар очередного велосипеда не имеющий никакого отношения к теме топика :)
 

Marquis

Новичок
Я начинающий в PHP
к вопросу отношения не имеет.

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

timer0x01

Новичок
2 Апокалипсис:
много чего интересного, но конкретных ответов не нашёль кроме как:

http://phpclub.ru/talk/showthread.php?s=&threadid=81464

немного помогло.

2 Marquis:

Я не совсем начинающий :) , я начинающий в понятии логики больших приложений (как к примеру CMS). Дело в том что у меня быль проект что-то вроде портала.
Сначала я сделал так:
Всё управлялось с index.php?page=news и быль файл foo.php который include-лся в index.php и в foo.php была проверка какой файл соответственно подключить:
PHP:
if($page=='news') include("inc/news.inc.php")

Так вот конечно файл foo.php современем стал очень большим и потом надо было весь проект перевести в ООП:
я сделал базовый клас template_class.php в котором сам макет сайта да и ещё разные set-функции (загаловок страници, мета таги, и содержание). Сейчас я делаю для каждого действия свой файл, т.е. index.php?page=news стал news.php, а в news.php вот это:

PHP:
class page extends template_class
{
       funtion content()
       {
             // zdes samoe soderjanie stranici, t.e. vuborka iz BD novostej
       }
}

$obj = new page();
$obj->setTitle("NEWS");
...
$obj->content();
$obj->display_all(); // metod obedinqjushij vse ot template_class i page
Так вот, мне кажется что этот метод опять мне принесёт много гловоболия и хочу спросить как лучьше же делать CMS/Portal всмысле логики архитектуры? Как Вы делаете? Какую CMS мне посмотреть как пример реализации (маленькую и понятную)? Или может мне подскажите доки ... Спасибо
 

Marquis

Новичок
Я не совсем начинающий
ты не совсем правильно меня понял.
я хотел сказать что PHP и разработка CMS обсалютно не связанные вещи.

потом надо было весь проект перевести в ООП
ага, зачем?

(загаловок страници, мета таги, и содержание)
это все частности, при разработке они должны беспокоить тебя в последнюю очередь.

Сейчас я делаю для каждого действия свой файл
причина?

Так вот, мне кажется что этот метод опять мне принесёт много гловоболия и хочу спросить как лучьше же делать CMS/Portal всмысле логики архитектуры
ты прав, этот "метод" тебе опять принисет "гловоболия"

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

timer0x01

Новичок
Мне требуется понять как функцианируют больщентво CMS-ов и/или найти решение управлением большим Порталом. Решение должно быть как можно абстрактнее и интелегетнее, что-бы поддержка Портала (добавление новой функциональности, редезайн и т.д.) была простой (если надо включил какой-то модуль если не надо выключил). Поетому я считаю что для етого решение подойдёт идея/и какой/каких нибудь CMS. Хочу понять какие идеи и возможности есть у разных CMS и соответственно когда задачи разные - применят разные идеи.

Как я писал идею "index.php?page=news" взял от сюда:
http://www.web-faq.ru/articles/showarticles_250.html
Но потом понял что эта идея хороша только для маленьких проектов - получается большая каша в этом "foo.php" когда файлов много и они меняются и удаляются очень часто.

Потом я поробовал что-то вроде етого:
http://www.web-faq.ru/articles/showarticles_151.html
Сделал я клас "template_class" на подобии класа "WebPage" (в статии), только не стал изпользовать модульность.
Мои клас "template_class" в основном содержит:
Display() функции - функции где сам дизайн и шаблон сайта
Set() функции - функции которые вызываются при создании обекта (задают загаловок, мета таги, мета описание, язык и т.п.)
Content() функция ето основное соредржание, т.е. там логика например для обраборки какой нибудь формы или же показывает туже форму

Потом ето всё я наследую и новом класе и в новом файле .. если надо что-нибудь переделать переделываю в етом самом новом класе ..
Выбрал я ООП из-за наследия, т.е. очень удобно создавать новые страници с возможностями "template_class" но если надо что-то переделать или добавит специально для етой странички ето делается в файле наследнике (странички).

Так вот и поетому хочу узнать от опытных правильно ли я выбрал идею да и вообще что ещё можно придумать.. что ето за модульность зачем и где изпользовать ?

Я хочу узнать обо всех идеях реалицации Content Managment-а и уж потом когда всё будет понятно выбирать наилучшее решение.

Спасибо
 

bools

Новичок
Так вот конечно файл foo.php современем стал очень большим и потом надо было весь проект перевести в ООП:

Мои клас "template_class" в основном содержит:
Display() функции - функции где сам дизайн и шаблон сайта
у тебя в голове каша, ИМХО.

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

2. Тебе ясно сказали - "напиши для начала скрипт публикации обычных текстовых страничек, дальше по нарастающей". Или ленту новостей или гостевую книгу. Это и будет твоя ЦМС. ЦМС - это система управления содержимым сайта. Пляши от этого. Забудь слово ЦМС и делай то, насколько у тебя хватит ума. Цель у тебя одна - создать административный и публичный интерфейс сайта; с помощью первого ты управляешь содержимым, второй - выводит это содержимое пользователю.

CMSы - как люди. Их много, у каждого разработчика они разные и каждая cms, её качество, зависит в первую очередь от опыта разработчика. А опыт - дело времени. Главное - нужно писать, писать логические вещи, обдумывать написанное, больше читать и меньше спрашивать глобальные вещи, типа "как написать оптимальную ЦМС".
 

boombick

boombick.org
читай что-нибудь по ООП и паттернам проетирования - поймешь, как проектируют большие проекты :)
 

alexs

Новичок
имхо, читать шаблоны проектирование на данном этапе - только пополнять кашу в голове.
Разобраться с ООП - да, обязательно, почитать Гради Буча - да, полезно

Что касается CMS, возьми например Joomla, проанализируй архитектуру, напиши какие-нибудь компоненты, хорошо было бы заюзать её в каком-то проекте. После этого получишь хороший опыт и поймёшь, что писать хорошие системы одному не эффективно :)
 

С.

Продвинутый новичок
timer0x01, то, о чем ты говоришь, называется CMF, а не CMS. CMS немного из другой оперы.
 

jonjonson

Охренеть
Qwertz, там есть хоть одна глава посвящённая архитектуре web приложений?

timer0x01, а ответ тебе дали. Пиши код. Вот когда в реальном приложении его накопится критическое количество, тогда и возникнет вопрос, как его организовывать более удобно... Но по моему опыту, скорее возникнет проблема дублирования кода и трудности его постоянной правки.

Вопрос же архитектуры, будучи поставленный абстрактно, не решается, кроме как через отказ от своих теоретических изысканий. :)

Если ты пишешь отдельные сайты, то нет смысла вести речь о написании модульной СMS. Модульность CMS - это маркетинговое явление и рассчитано на конечного пользователя. Модульная CMS - это товар. Разработчики имеют дело с CMF, как подсказал С.. На основе CMF делаются индивидуальные решения.
 

boombick

boombick.org
jonjonson
но можно написать модульный CMF :) Что будет несравненно удобнее для разработчика. Все ИМХО, но сейчас именно таким и пользуюсь
 

tf

крылья рулят
Я начинающий в PHP так-что мне надо возможно самая обыкновенная CMS на принципе модульности .. мне важно понять идею.
boombick, давай он сначало cms хотябы напишет :)
 

tf

крылья рулят
ндя :(
Модульная CMS - это товар. Разработчики имеют дело с CMF, как подсказал С.. На основе CMF делаются индивидуальные решения.
и ты не читал до конца =)
 

jonjonson

Охренеть
boombick, смотря что подразумевается под модульностью? По идее все CMF модульные, но эта модульность нечто отличное от модульности CMS. ;)
 
Сверху