Только для читателей Lifeexample возможно открыть интернет-магазин на Moguta.CMS со скидкой в 15%

<<< jQuery карусель || Прием webmoney на сайте >>>

Создание CMS этап проектирования

08.07.2012
Создание CMS  этап проектирования

Здравствуйте, уважаемые читатели блога LifeExample, сегодня я бы хотел затронуть тему, с которой стоило бы начинать цикл статей о разработке интернет магазина. Говорить мы будем о процессе создания CMS на этапе проектирования.

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

Процесс создания CMS на этапе проектирования определяет задачи, по плану которых любая CMS должна :

  • Иметь свой установщик;
  • Обновляться, не трогая пользовательские файлы. Т.е. обновлять только ядро;
  • Поддерживать использование плагинов;
  • Иметь возможность кеширования страниц;
  • Сохранять резервные копии БД;
  • Поддерживать шаблонизацию;

Этот перечень – основа задач для любой созданной для пользователей системы управления контентом.

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

В случае когда созданной CMS ’кой хочет пользоваться человек, не имеющий понятия даже о HTML, все это должно быть!

Установщик CMS

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

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

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

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

Другими словами при первом запуске пользователь должен попадать в среду установки CMS, физически находящейся в каталоге install.

Вот блок схема алгоритма первого запуска:

Создание CMS и проектирование

Как видите сначала по плану настройка файла конфигурации, затем удаление установщика, и запуск.

Поддержка плагинов

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

Сам класс Plagin должен находиться в ядре системы, и иметь возможность обновляться с выходом новых версий. Это необходимо для наращивания функционала системы в дальнейшем.

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

Обновление системы

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

Прочитав руководство к обновлению версий ядра, я был немного смущен необходимостью последовательного обновления. Нужно было проделать обновления в таком порядке v1.5–>v1.6->v1.7, причем все это было в полуавтоматическом режиме с использованием нескольких интерфейсов и замены файлов текущей версии вручную.

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

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

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

Проектирование CMS - файлы

Кеширование страниц и поддержка шаблонизации

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

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

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

Сохранение резервных копий БД

При поддержке и развитии сайта созданного на любой CMS, бывает необычайно важным вести ежедневное сохранение резервных копий базы данных.

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

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

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

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

<<< Предыдущий урок | Следующий урок >>>

Чтобы не пропустить публикацию следующей статьи подписывайтесь на рассылку по E-mail или RSS ленту блога.

Нравится

Комментарии

  • dashafrolova

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

    • Может что-то не так перенесли, или базу не обновили.

  • fgjhrytjrtyj

    отлично! хотим почитать, как сделать файл интсалл, который в последствии сам себя удалит.
    и кЭширование тоже интересует!

    • Пока делаю редактор статических страниц затем наверное кэшированием займусь.

  • dashafrolova

    Переустановила два раза базу из того же архива с CMS. Тут скорее всего что-то с кодом.

  • Мурад

    А не могли бы вы рассказать как организовать взаимодействие с плагинами в MVC?

  • Оставить комментарий

    Подписаться на комментарии к этой статье по RSS

    Яндекс.Метрика