Банально, но ;) пишу CMF и предлагаю познакомиться и ищу единомышленников для дальшейшей разработки.

it6nik

Новичок
Здравствуйте.
Недавно в голову пришла аналогичная идея, всмысле написания некого CMS или CMF. Но идея пришла с того, что работая над очередным проектом я вспоминал, что его отдельные детали уже были реализованы в работе над другими проектами. В итоге решил не писать все с нуля, а воспользоваться уже написанными элементами просто скомпоновав их вместе, но как оказалось, в каждой части используются разные способы работы с бд, авторизации и вывода результата выполнения. Всмысле логика везде одна, а вот название классов, их методов и отдельных функций отличаются. В итоге пришлось разбираться в несколько запутанном и однообразном коде с различными названиями, но выполняющими одно и тоже функциями, конечно работа заняла меньше чем писать это все с 0, но значительно больше, если бы это все было более описано в одном ключе. Решил сейчас объединить это все в один инструмент, не буду его называть типа CMS CMF или еще как то, а просто библиотека функций с созданием окружения и строгим описание структуры и работы модулей.
Отсюда возник вапрос как лучше это реализовать, т.е. отдельные элементы есть, а вот основной движок как реализовать пока думаю. Наткнулся в поисковике на данную ветку, находящуюся на первой странице, но тут под архитектурой вы понимаете что-то не то.
Ну точнее так, может это и архитектура, но явно не того, что вы пишите. Я бы это скорее назвал конструкция итоговых страниц. А меня интересует архитектура в плане:
1.Как происходит инициализация окружения(подключение модулей, настроек и всего что используется в дальнейшем)
2.Обработка ядра( типа как обрабатывается непосредственный запрос как анализируется, куда передается управление после анализа и какие варинаты этой передачи предусмотрены и как смоделирвоанно их дальнейшее расширение)
3.Структура модулей, как они строятся, подключаются, обязателные элементы.

Про шаблонизатор даже не спрашиваю, на него типа есть информация, которой мне достаточно.

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

Вобщем хотел увидеть хотя бы грамотную архитектуру, увидел горы кода с четкой документации. Таких горе CMS в инете полно, все говорят что пишут их что типа что-то не устраивает другие движки, потом уже и свой не устраивает по мере его расширения.
Без четкой архитектуры проекты не могут развиваться.
Что касается тут кто-то писал про монстров типа если они есть, то другие не нужны. Я вот уверен, что для ряда мелких задач достаточно иметь мелкое решение, вот только проблемма, что их со временем пытаются превратить в универсальное и убивают тем самым.
Да и есть мнение, что создатели то го же drupal'a даже если и считают нужным что-то изменить кардинально уже не могут. Отсюда всегда есть шанс что появится что-то с более грамотной реализацией, но увы это только надежда. А большинство решений это попытка самому написать так как вижу, при этом больше внимания уделяя программированию и забивая на логику.
 

d1gi

Новичок
здавствуйте :) рассуждения это хорошо, а вопрос какой-то будет? :)

что касательно сабжа, то сейчас занимаюсь рефакторингом с применением компонентов Symfony2, но не бандлов, наработками с радостью готов поделиться :)
 

it6nik

Новичок
А вопрос был и не один, ну ладно:
1. Как происходит инициализация окружения? Как хранятся настройки, текстовые константы, модули. Всмысле какова логика их подключения? Просматриваете ли вы какие-то папки или перечень у вас хранится в файле настроек, его название, тип, структура.
2. Как происходит обработка запроса по какому принцепу он передается дальше и куда?
3. Структура модулей. Как они создаются, подключаются и что там должно быть обязательно и из чего состоять?
 

d1gi

Новичок
ммм :)) дело в том, что на данный момент вникать в логику работы именно CMF по состоянию на момент конца явнва этого года не совсем разумно ;) как я уже упомянул выше, сейчас занимаюсь рефакторингом и теперь это будет не просто цельная CMF-ка, а полноценный фреймворк на базе компонентов sf2, наподобии Silex, но не на столько упрощенный ;) и вот на этом же фв, будет реализована цмф-ка. такой подход интересен будет тем, что с одной стороны предлагается каркас для простых приложений и тутже пример реализации достаточно сложной системы.

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

по поводу ваших вопросов:

что вы имеется ввиду по "окружением"?

настройки бывают разных видов... разумеется базовая конфигурация приложения через текстовые конфиги (ini, yml, xml, php), как это принятов в фреймворках, но например в ЦМФ-ке будут также настройки, которые относятся к какому-то сайту, вот они уже будут храниться в БД.

обработка запроса стандартными средствами Symfony\Component\Routing. но надо иметь ввиду, что для цмф-ки будет разработан компонент, который будет являться "управляющим контроллером" ;) пока рабочее название "SiteStructure", в принципе это будет основная "фишка" фреймворка ;) и концептуальной особенностью цмфки, локига работы будет почти такая же как сейчас в цмф. более подробная документация пока есть только в текстовичках... в принципе могу выложить, если кому интересно ;)

понятие "модуль" в разных системах имеет разный смысл... мне в принципе симпатизирует идеология "Бандлов" из сф2, но во первых пока не разобрался как можно бандлы сф2 юзать "малой кровью" т.е. без привлечения всей сифоневской реализации фреймворка... в прицнипе с радостью бы пообщался на эту тему со знающим человеком! :)

в общем "модули" пока вопрос открытый, но в принципе будет очень похожее на "бандлы" сф2, но в них будет сразу реализована интеграция с компонентом "SiteStructure".

если интересно, могу скинуть в личку наработки по фреймворку, там же помаленьку прорисовываю файловую структуру, формат конфигов, доки...
 
Сверху