Архив автора

Архитектура MVC

Технологии Оставь комментарий »

После непродолжительного изучения определил для себя суть архитектуры Model-View-Controller. Тенденция здесь такая же, как и при вёрстке в XML, т.е. отделение данных (model) от представления (view). И поскольку MVC применяется для интерактивных приложений, добавляется ещё один элемент – контроллер (controller), который обрабатывает данные от пользователя и инициирует реакцию модели и представления.

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

Вот, пожалуй, наиболее удачное из найденных мною, объяснений сущности MVC:

——————————————-

Модель (Model)

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

Вид (View)

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

Контроллер (Controller)

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

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

Модель не зависит ни от вида, ни от контроллера, что позволяет одновременно строить различные интерфейсы пользователя для взаимодействия с одной и той же моделью данных.

——————————————-

В nSite CMS в данный момент выделяются три типа представлений:

  1. Списки объектов
  2. Редактирование свойств объекта
  3. Сервисные функции (настройки системы, рассылка и т.п.)

Вот эти представления мы и будем проектировать по архитектуре MVC.

Для понимания архитектуры были использованы следующие источники:

  1. Википедия
  2. Сергей Бердачук. Eclipse RCP. Файловый менеджер
  3. MVC для начинающих
  4. Триада MVC в действии
  5. Разработка встроенных приложений с использованием eSWT

Model-view-controller

Технологии Оставь комментарий »

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

Задача: разобраться в архитектуре MVC (Modell View Controller), которая используется в большинстве PHP-фреймворков. Её выбрали IBM и Zend, так что имеет смысл в первую очередь обратить внимание на ней.

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

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

Изучение MVC начну со страницы на Википедии и пойду дальше по ссылкам.

CAPTHCA

php-скрипты, Полезные скрипты Оставь комментарий »

http://captcha.ru/kcaptcha/

Проект KCAPTCHA — это готовое решение, написанное на языке PHP, которое вы можете бесплатно скачать и установить на свой сайт для защиты от спама и флуда.

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

Принцип действия: скрипт заводит сессию и записывает в нее под именем $_SESSION['captcha_keystring'] случайным образом сгенерированную строку, после чего выдает изображение, содержащее эту самую строку в зашумленном виде. При проверке пользовательского ввода вам остается только прочитать из сессии кодовую строку и сравнить с тем, что ввел пользователь.

Системные требования: PHP версии 4.0.7 и выше с поддержкой GD версии 2. Не требуются ни библиотеки для работы со шрифтами (Libttf и др.), ни ImageMagick.

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

Можно настраивать цвета и набор символов, применяемые при создании изображения.

Система контроля версий

Программы, Технологии Оставь комментарий »

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

На сегодня самой популярной и одной из самых продвинутых является система Subversion. Вот её мы и будем использовать.

К сожалению, на виртуальных хостингах установка системы Subversion недоступна. Поэтому придётся использовать специализированный Subversion-сервер: subversion.ru.

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

Наши планы по развитию nSite CMS

Планирование Оставь комментарий »
  1. Зарегистрировать домен nsite-cms.ru
  2. Поставить блог
  3. Сформировать набор рекомендаций по редизайну CMS
  4. Выбрать систему хранения версий и понять, каким образом её можно разместить где-то в интернете?
  5. Выбрать среду разработки: Zend или Eclipse?
  6. Расписать принцип работы с элементами сайта в CMS.
  7. Расписать хранение древовидной структуры в БД и нарисовать её в PowerDesigner.
  8. Написать список функций объекта
  9. Описать функции БД для добавления, редактирования и удаления раздела