Content Managment System/Framework

Современная система для создания и управления интернет проектами с открытым исходным кодом, основанная на Symfony2 Framework.

Миссия проекта

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

О проекте

Smart Core CMS на фреймворке Symfony2 запущен в мае 2012 года. Репозиторий актуальной ветки расположен тут: https://github.com/Smart-Core/CMS-Sandbox. Новая ветка является просто технологическим развитием своего же самобытного предшественика с которым можно ознакомиться тут. С демосайтом предшественника можно ознакомиться по адресу http://digi.tw1.ru/.

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

После изучения актуального положения дел в области PHP фреймворков, выбор был сделан в пользу Symfony2, в принципе конкурентов ему на данный момент нет и возможно в обозримом будущем не появится т.к. ZendFramework 2 на момент момент принятия решения, находился в статусе beta, да и в принципе не выглядит интереснее чем Symfony2. Yii второго поколения находится в разрабоке и когда он появится в свет неизвестно вообще. Все другие фреймворки либо в значительной мере устарели, либо не являются на столько развитыми, как Symfony2.

Особенности и достоинства

Обзорное описание

Сердцем системы является бандл CMSBundle, в нём все запросы передаются на контроллер EngineController, который разбирает строку запроса и реализует логику динамических роутингов. Логика NodeMapper будет описана подробно в документации, а если сказать кратко, то строка запроса сначала будет разбита на части по знаку "/" эти части в системе называются «папки». Затем на основе известного порядка запроценных «папок», будет сформирован список всех модулей, которые нужны для сборки страницы. Далее по ивестному списку, модули поочередно запускаются, а результат их работы складывается в единый объект вида, который в итоге будет являться ответом для клиента.

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

Главная изюминка Smart Core CMS заключается именно в логике формирования списка модулей, которые отвечают за содержимое итоговой страницы. Для предварительного знакомства, можно почитать статьи в вики Общие_принципы и Архитектура_(OLD), а также можно ощутить в действии логику создания папок, подключение модулей и т.д. на демо-сайте http://digi.tw1.ru/.

Текущий статус

Проект развивается в фоновом режиме, и на данный момент можно рассматривать как инженерный прототип.

Дорожная карта

Системные требования

Так как проект базируется на базе Symfony2 Framework, то и минимальные требования аналогичны. С полными требованиями можно ознакомиться на официальной странице Requirements for running Symfony2.

Требования к серверу:

Рекомендации к серверу:

Получить

На данный момент доступна только, так называемая, «песочница« т.е. некоторое окружение, которое можно запустить и посмотреть как примерно устроена и работает система.

Для установки песочницы надо выполнить команду:

git clone https://github.com/Smart-Core/CMS-Sandbox.git

Затем войти в директорию песочницы:

cd CMS-Sandbox

Если composer еще не установлен, то надо выполнить команду:

php -r "eval('?>'.file_get_contents('https://getcomposer.org/installer'));"

Установить все зависимые пакеты:

composer.phar install --prefer-dist

Импортировать базу данных из файла smart_core.sql и прописать параметры доступа к БД в файле /app/config/parameters.yml (пример конфига находится в /app/config/parameters.yml.dist).

В заключении запускаем проект, например по адресу: http://localhost/CMS-Sandbox/web/

Документация

Wiki - http://smart-core.org/wiki/

В связи с рефакторингом и переходом на Symfony2, документация в вики на данный момент не является актуальной :(

Сообщество

На данный момент кодированием занимается только один человек, это я - Артём :) И очень надеюсь, что проект заинтересует сообщество!

Присоединяйтесь! Форум - http://smart-core.org/forum/, страницы в социальных сетях - Вконтакте и Facebook



Дата последнего обновления страницы: 2014-01-27.