Современная система для создания и управления интернет проектами с открытым исходным кодом, основанная на Symfony2 Framework.
Создание системы управления сайтами, основанной на современных паттернах проектирования и программирования, гибкой для разработчиков с красивым и качественным исходным кодом, и одновременно дружелюбным интерфейсом для конечных пользователей, что является трудной и интересной задачей :) а также создание дружного сообщества, в котором удастся приобрести обширный опыт командной разработки в одеологии открытого программного обеспечения.
Smart Core CMS на фреймворке Symfony2 запущен в мае 2012 года. Репозиторий актуальной ветки расположен тут: https://github.com/Smart-Core/CMS-Sandbox. Новая ветка является просто технологическим развитием своего же самобытного предшественика с которым можно ознакомиться тут.
Решение о переходе на какой либо фреймворк было принято в связи с тем, что в процессе разработки системы огромное кол-во времени тратилось на решение низкоуровневых задач, а не на реализацию непосредственно ощутимого функционала системы управления содержимым.
Сердцем системы является бандл CMSBundle, в нём все запросы передаются на контроллер EngineController, который разбирает строку запроса и реализует логику динамических роутингов. Логика NodeMapper будет описана подробно в документации, а если сказать кратко, то строка запроса сначала будет разбита на части по знаку "/" эти части в системе называются «папки». Затем на основе известного порядка запроценных «папок», будет сформирован список всех модулей, которые нужны для сборки страницы. Далее по ивестному списку, модули поочередно запускаются, а результат их работы складывается в единый объект вида, который в итоге будет являться ответом для клиента.
Надо отметить, что модули обычно возвращают ответ не в виде текста, готового для применения, а в виде объекта в котором содержатся данные и инструкции для рендеринга, а отрисовка идёт уже непосредственно в общем выводе. Это означает, что сначала идёт формирование всех данных, а их преобразование в HTML выполняется только в момент непосредственной отправки ответа клиенту.
Главная изюминка Smart Core CMS заключается именно в логике формирования списка модулей, которые отвечают за содержимое итоговой страницы. Для предварительного знакомства, можно почитать статьи в вики Общие_принципы и Архитектура_(OLD).
Проект развивается в фоновом режиме, и на данный момент можно рассматривать как инженерный прототип.
Так как проект базируется на базе 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'));"
Импортировать базу данных из файла smart_core.sql
Запустить установку через composer:
composer.phar install --prefer-dist
В заключении запускаем проект, например по адресу:
http://localhost/CMS-Sandbox/web/
Wiki - http://smart-core.org/wiki/
В связи с рефакторингом и переходом на Symfony2, документация в вики на данный момент не является актуальной :(
На данный момент кодированием занимается только один человек, это я - Артём :) И очень надеюсь, что проект заинтересует сообщество!
Присоединяйтесь!