Среда разработки интернет-решений CMF BaseBuild

Универсальной системы управления контентом не существует. Представленные на рынке CMS обладают либо недостаточной, либо избыточной функциональностью. Кроме того, любая готовая CMS предполагает некое общее решение структуры данных и функциональности, как правило, не учитывающее специфику создаваемого сайта. Фактически, выбор CMS сайта сводится к поиску среди имеющихся на рынке готовых решений системы управления контентом, наиболее полно и экономично реализующей стоящие перед сайтом задачи.

Для решения данной проблемы, студия web-дизайна INTEGRATE создала среду разработки интернет-решений CMF BaseBuild. CMF BaseBuild предназначена для разработки и конфигурирования системы управления контентом отдельно взятого сайта, причем конфигурация, функциональность и другие особенности создаваемой системы управления контентом задаются на этапе проектирования сайта и зависят от задач, перед создаваемым сайтом поставленных.

Структурно, среда разработки интернет-решений CMF BaseBuild представляет собой утилиту, предназначенную для визуального проектирования и генерации произвольных классов PHP.

Что такое CMF BaseBuild?

Первая в России (а, возможно, и в мире) объектно-ориентированная среда разработки интернет-решений на связке PHP5/PostgreSQL CMF BaseBuild предназначена для создания систем управления контентом семейства CMS BaseBuild Crystal Fortress.

Это вовсе не означает, что в ней невозможно разработать CMS, отличающуюся от существующих CMS BaseBuild Crystal Fortress. Это означает. что любая система, разработанная в CMF BaseBuild, будет системой управления контентом CMS BaseBuild Crystal Fortress.

Шутка, конечно, но, как известно, в каждой шутке есть доля шутки. На самом деле, при проектировании нашего framework, мы постарались учесть возможность будущего произвольного изменения идеологии разработки. Поэтому, CMF BaseBuild оперирует самыми общими понятиями - она почти ничего не знает о паттернах программирования, ей не известен ни точный состав классов будущей CMS, ни реализация конкретного класса. Впрочем, кое-что мы все-таки можем предположить с самого начала:

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

1.

Методика проектирования CMS

Проектирование CMS сайта ведется внутри среды разработки интернет-решений. Производится выбор готовых сущностей из репозитория, либо создание новых сущностей, уточняется структура классов, их функциональность. Подключаются готовые либо создаются новые шаблоны добавления и редактирования. Задается имя базы данных создаваемого сайта, его url (количество url - как конечных сайтов, так и back-офисов - произвольное), создаются пользователи, обладающие правами администратора сайта.

На основании проекта создается экземпляр системы управления контентом семейства CMS BaseBuild Crystal Fortress. Программный код CMS BaseBuild Crystal Fortress, необходимые базы данных, таблицы, связи, индексы, шаблоны, записи в DNS, виртуальные сервера apache и nginx, а также все прочее, необходимое для быстрой сборки готового сайта, создается автоматически.

Естественным преимуществом среды разработки интернет-решений CMF BaseBuild является возможность рассматривать среду разработки как одну из CMS BaseBuild Crystal Fortress, создающихся в процессе работы CMF. Т.е., изменение среды разработки может проводиться (и проводится) внутри самой среды разработки. Для упрощения работы применяется логирование действия с возможностью отмены заранее заданного количества изменений.

2.

История CMF BaseBuild

Первая версия CMF BaseBuild заработала на PHP 5.0.0 Release Candidate 1. По нашим данным (возможно не полным), это был первый в мире framework, работавший на PHP5. Характерными особенностями первой версии, были компактное ядро (состоявшее тогда из восьми классов), а также единый API доступа к свойствам и методам любого объекта. Шаблоны администрирования генерировались, код классов подключался динамически из базы данных, возможности групповой инициализации отсутствовали. Классы системы подразделялись на две группы - Узлы (поддерживавшие структуру и правила отображения отдельных страниц сайта) и web-объекты (атомарные данные, как правило, прикрепленные к узлам).

Основной особенностью генерировавшихся CMS стал отказ от контейнеров - разделов сайта. Разделом мог стать любой объект - при добавлении дочернего отображаемого на сайте объекта.

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

Доступ к объектам осуществлялся через узел, к которому объект был прикреплен. Соответственно, в подавляющем большинстве случаев, фильтрация пользовательского ввода сводилась к приведению идентификатора узла к целочисленному типу.

За время работы над системой, многократно менялись ее архитектура, состав классов, переписывался и оптимизировался код. В настоящее время, мы работаем с 14 генерацией ядра CMF.

3.

Текущая версия CMF BaseBuild

Текущая версия ядра CMF BaseBuild - 14.5. В течение конца 2008 и всего 2009 года переписан весь код ядра, полностью изменена схема хранения данных.

Упорядоченное дерево забирается из базы одним SQL-запросом. Все web-объекты получают свойства узлов - с возможностью получения упорядоченных и отфильтрованных потомков. Логика добавления и изменения данных перенесена на уровень СУБД. Добавлены пользовательские view, индексы, функции PL/PgSql (добавляемые на этапе эксплуатации системы). Среднее потребление памяти напрямую зависит от объема данных (и с точностью до нескольких процентов равно этому объему), полученных из СУБД. Специальные сервисные утилиты для работы с большими (сотни тысяч узлов) ветвями. Администрирование полностью переведено на AJAX. Внедрен собственный визуальный редактор, корректно "чистящий" импортированные из внешних источников данные.

Текущий объем кода CMF BaseBuild составляет около 150 Кб, в том числе:

4.

Перспективы развития CMF BaseBuild

Летом 2008 года, компания INTEGRATE приняла стратегическое решение о развитии CMF BaseBuild как проприетарной общедоступной системы. Мы предполагаем открыть другим web-студиям платный доступ к системе, на первых порах на условиях SaaS. Предполагается 2 варианта оплаты - ежегодная и посайтовая. Мы предполагаем открыть сервис после проведения следующих дополнительных работ:

Ориентировочный срок открытия сервиса - середина 2011 года.

В планах дальнейшего развития - оформление CMF BaseBuild в качестве отдельного расширения PHP.

Under construction

Здесь могла бы быть наша реклама. И она здесь обязательно будет

Продукты

Услуги

Компания