Статьи Новости Контакты

25.01.2007
Олег Лобач

Компоненты. Второе пришествие

компоненты 2.0

Битрикс

Одним из элементов концепции системы "Битрикс: Управление сайтом" является компонент. В документации компонент определен как "часть модуля, представляющая собой логически завершенный код, хранящийся в одном файле, принимающий ряд параметров, выполняющий ряд действий и выводящий какой-либо результат (например, в виде HTML-кода)". То есть компонент служит для вывода на страницу какого-либо функционально законченного блока, например ленты новостей, формы авторизации пользователя или меню сайта. Использование системы компонентов сводит создание новой страницы сайта к размещению на ней различных компонентов.

Недостатки первой версии компонентов

Основным недостатком первой версии компонентов является совмещение логики и представления в одном файле. Такое решение приводит к увеличению трудоемкости создания новых и модификации существующих компонентов. Требования к квалификации верстальщика также возрастают — кроме знания (X)HTML и CSS, необходимо владение PHP. При желании иметь несколько различных дизайнов одного компонента потребуется создание полной копии компонента для каждого варианта дизайна. Для изменения шаблона требуется изменение PHP-кода компонента.

Кроме того, связанные компоненты (такие, как "форум" или "каталог") сложно создавать, изменять, настраивать и поддерживать. Необходимо знать структуру страниц и принадлежность компонентов страницам. Для изменения дизайна потребуется переработка верстки каждого компонента.

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

Есть еще один момент, который можно отнести к недостаткам, — верстка стандартных компонентов выполнена с помощью таблиц. Это затрудняет изменение дизайна и противоречит рекомендациям W3C*.

Из вышесказанного видно, что компоненты первого поколения имеют ряд существенных недостатков. Для их устранения компания "Битрикс" разработала новую технологию под названием "Компонент 2.0".

Цели новой технологии

Вот цели, стоявшие перед разработчиками этой технологии:

  • облегчить создание сайта;
  • снизить требования к квалификации разработчиков сайта;
  • облегчить адаптацию системных компонентов под требования конкретного сайта;
  • облегчить повторное использование кода;
  • увеличить производительность компонентов.

Есть все основания полагать, что поставленные цели были достигнуты.

Итак, что же интересного для программистов готовит "Битрикс" в новой технологии?

Разделение логики и представления

Основное нововведение — это разделение логики компонента и его представления. То есть теперь логика функционирования компонента не связана с его внешним видом. Теперь для изменения внешнего вида компонента достаточно выбрать другой шаблон (или сверстать новый), не трогая PHP-код, отвечающий за поведение компонента. Компонент может иметь несколько представлений, в том числе зависимых от шаблона текущего сайта. Кроме того, новая технология позволяет использовать в качестве шаблонизатора любой шаблонный движок — PHP, Smarty, XSL, FastTemplate и многие другие. Это ведет к упрощению шаблонов, что, в свою очередь, значительно облегчает работу верстальщика.

Следуя требованиям, новые компоненты должны располагаться в каталоге /bitrix/components/. Название каталога, лежащего в каталоге /bitrix/components/, образует пространство имен (namespace). Например, все системные компоненты располагаются в пространстве имен bitrix (то есть располагаются в каталоге /bitrix/components/bitrix/), и обращение к такому компоненту выполняется с указанием этого пространства имен. Может возникнуть вопрос: "Зачем разработчики ввели такое понятие в свою технологию?" Для иллюстрации удобства новой схемы именования компонентов предположим, что необходимо разработать компонент, идеологически схожий с системным компонентом, например catalog, но функционально не реализуемый с его помощью. Разработчики предлагают в этом случае создать собственное пространство имен, например mycompanyname, и создать в нем компонент catalog с нужной функциональностью. Чтобы подключить созданный компонент, необходимо вызвать его по имени mycompanyname:catalog, а если понадобится системный компонент, то вызывать следует по имени bitrix:catalog. Таким образом, можно при именовании собственных компонентов не бояться дублирования названий.

Правила именования компонентов также претерпели изменения. По новым требованиям название компонента состоит из одного или более слов, разделенных точкой. Например, catalog.section.list, catalog.section.element, catalog.list. Рекомендуется строить имена иерархически, от общего понятия к конкретной функции компонента. Название каталога, в котором находится компонент, должно быть идентичным имени этого компонента.

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

Комплексные компоненты

В новой технологии компоненты стали разделяться на два вида — простые и комплексные (многостраничные). Примером комплексного компонента может служить каталог товаров. Страница со списком групп товаров, страница со списком товаров в определенной группе и страница детальной информации о конкретном товаре теперь могут принадлежать одному компоненту. При этом пропадает необходимость создавать большое количество страниц для размещения всех требуемых компонентов. Нет необходимости настраивать каждый компонент. Нет необходимости устанавливать сложные взаимосвязи между компонентами. Для смены дизайна нет необходимости менять дизайн каждого компонента. Таким образом, комплексные компоненты значительно облегчают настройку, смену дизайна и поддержку многостраничных функциональных элементов сайта (таких, как форум, блоги или каталог товаров).

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

Схема MVC

Новые компоненты стали поддерживать систему UrlRewrite — систему поддержки ЧПУ (человекопонятные URL). То есть адрес страницы каталога товаров теперь может быть не www.mysite.com/catalog/element.php?ID=3507&SID=235&GID=15, а гораздо более простым — www.mysite.com/catalog/phone/235/3507.php. Такой адрес не только легче воспринимается человеком, но и лучше индексируется поисковыми машинами.

Таким образом, новая технология, внедряемая в CMS "Битрикс: Управление сайтом", обладает рядом очень интересных и полезных для разработчиков свойств. Новые компоненты значительно облегчат разработку и поддержку сайтов. Позволят повысить эффективность труда программистов и верстальщиков за счет разделения логики и представления.

В момент написания статьи уже доступен предварительный релиз. Официальный выпуск должен состояться в начале февраля.

Ссылки по теме




Скоро на сайте

  • Wordpress

    Серия статей о плагинах к движку WordPrress
  • AJAX

    Проекты и продукты, ориентированные на AJAX
  • Новые сервисы Google

    Обзор новых сервисов Google
 

Copyright © 2003—2018 Все права защищены

При использовании материалов сайта ссылка на hostinfo.ru обязательна

  • хостинг от .masterhost
  • Rambler's Top100