Немного об Extbase (MVC фреймворк внутри TYPO3)

Немного об Extbase (MVC фреймворк внутри TYPO3)

Новости TYPO3

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

Итак, снова о TYPO3. Одной из множества интересных особенностей TYPO3 является наличие встроенного «внутрь» самой CMS полноценного MVC фреймворка под названием Extbase.

Немного истории. Extbase портирован в TYPO3 из фреймоврка TYPO3 Flow flow.typo3.org/home. TYPO3 Flow — это достаточно молодой php фреймворк (его разработка началась в 2008 году), который вобрал в себя все самые успешные современные концепции для построения веб-приложений. И хотя php фреймворков не так уж и мало, TYPO3 Flow “грозит» быть одним из самых мощных, и на то есть все основания.

Вкратце, что такое MVC фреймворк. MVC это аббревиатура от Model -View - Controller (модель-представление-поведение ) . Это концепция программирования, при которой модель данных приложения, его отображение и управление приложением разделены на три отдельных составляющих. Когда происходит изменение или расширение какой-либо части, то это оказывает минимальное воздействие на остальные компоненты. Как следствие, уже готовое приложение можно без особых усилий расширять в функциональном плане или изменять его внешний вид. Добавлю также, что такая методология ведет к более строгому стилю программирования, и в случае если разработчик приложения по каким-то причинам не может далее его поддерживать, то его последователь без труда разберется в коде. Это немаловажно для заказчика.

Extbase использует парадигму DDD (Domain Driven Design). Проектирование на основе предметной области. Такой подход хорошо применим в тех случаях, когда разработчик не особенно близко знаком с бизнес-логикой заказчика, и может, либо совместно с заказчиком, либо основываясь на его рекомендациях, грамотно спроектировать архитектуру будущего приложения. Для первоначально создания «скелета» приложения, Extbase использует специальный инструмент «Архитектор расширений», где можно легко создавать объекты будущей модели и определять связи между ними. (рис. 001.jpg) Таким образом проектирование происходит как-бы не «снизу» как это было раньше, когда создавались таблицы в базе данных, их отношения, и в дальнейшем было тяжело что-либо изменить, а «сверху». Сначала создаем архитектуру понятную обычному человеческому восприятию, а затем ее реализовываем. При этом DDD не отрицает, ни объектно-ориентированного программирования, ни MVC, но лишь дополняет существующие практики.

Extbase освобождает разработчика от изнурительного написания sql запросов к базе данных. Вместо этого extbase использует встроенную ORM (object-relational mapping.), концепцию, которая связывает базу данных с с концепциями объектно-ориентированного программирования. Т.е. программист пишет запросы к БД в привычном ему стиле ООП. Это немаловажно, т. к. избавит от возможных ошибок к sql запросам, а также в целом ускорит написание приложения.

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

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