Компоненты 2.0: новые возможности и принципы реализации презентация

Содержание

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

Слайд 1Компоненты 2.0:
новые возможности и принципы реализации


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

единожды написанный код
Визуально размещаются на странице сайта
Системные компоненты, поставляемые вместе с продуктом



Понятие компонентов


Слайд 3Компоненты 1.0: недостатки


Логика смешана с представлением
Неудобство верстки. Высокие требования к верстальщикам
Для

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



Слайд 4Компоненты 2.0: цель и направление
Облегчить создание сайта
Снизить требования к разработчику сайта
Облегчить

адаптацию системных компонентов под нужды конкретного сайта
Упростить повторное использование кода
Сохранить и увеличить производительность компонентов




Слайд 5Новые возможности
Разделение логики компонента и его представления. Компонент может иметь произвольное

число шаблонов
Произвольные шаблонизаторы
Компонент полностью лежит в отдельной папке
Комплексные компоненты
Поддержка ЧПУ
Удобный встроенный механизм кеширования
Легкость повторного использования и распространения


Слайд 6Физическое расположение компонентов
Все компоненты расположены в одной папке /bitrix/components/
Компоненты не привязаны

к модулям
Имя компонента имеет вид «слово1.слово2»
Компонент может принадлежать пространству имен. Полное имя компонента «Пространство имен:Имя компонента»
Все ресурсы компонента находятся в папке компонента. Компонент неделим.
Системные компоненты принадлежать пространству bitrix. Они обновляются системой обновлений



Слайд 7Структура компонента
Исполняемый файл component.php
Файл с описанием компонента и указанием его местоположения

в виртуальном дереве компонентов
Файл с описанием параметров компонента
Справка
«Языковые» файлы
Папка с системными шаблонами компонента
Папка с инсталляторами и деинсталляторами (зарезервирована)
Вспомогательные ресурсы компонента


Слайд 8Код компонента
Доступные переменные:
$arParams – массив входных параметров
$arResult – массив результатов работы

компонента
$componentPath – путь к папке компонента относительно корня сайта
$componentName – название компонента
$componentTemplate – название шаблона
Для каждого подключаемого компонента создается экземпляр класса CBitrixComponent. Внутри компонента методы этого класса доступны через переменную-псевдоним $this.


Слайд 9Шаблоны компонента
Встроенная поддержка PHP шаблонов
Возможность подключить произвольные шаблонизаторы: Smarty, XSLT, FastTemplate
Шаблоны

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


Логика компонента

Поиск шаблона
Определение шаблонизатора

PHP

Smarty


HTML








$arResult

Преобразование параметров, стили


Слайд 10Физическое расположение шаблонов компонента
Системные шаблоны находятся в подпапке templates папки компонента,

а адаптированные под конкретный сайт – в папке шаблона сайта
Шаблоны располагаются каждый в своей папке. Шаблоны без дополнительных ресурсов могут быть в виде файла
Шаблоны определяются своими именами. Если имя не задано, подразумевается шаблон по умолчанию .default
Каждый шаблон неделим



Слайд 11Структура шаблона компонента
Файл шаблона template.ext, где ext – это расширение одного

из установленных шаблонизаторов (в примере - template.php)
Файл с описанием шаблона
Файл с описанием параметров шаблона
«Языковые» файлы
Файл result_modifier.php для изменения результирующего массива перед передачей его в шаблон
Файл style.css для подключения необходимых стилей
Вспомогательные ресурсы шаблона


Слайд 12Код шаблона компонента
Предопределенные в PHP-шаблоне переменные
$templateFile – путь к шаблону относительно

корня сайта
$arResult – массив результатов работы компонента
$arParams – массив входящих парамеров компонента
$templateFolder – папка шаблона, если он лежит в папке (с дополнительными ресурсами)
$templateName – название шаблона
$parentTemplateFolder – папка родительского шаблона (если есть)
$componentPath – путь к компоненту относительно корня сайта
$component – объект компонента


Слайд 13Комплексные компоненты
Реализуют функциональность раздела сайта (набора взаимосвязанных страниц). Примеры: форум, каталог,

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


Слайд 14Структура комплексного компонента
Не отличается от структуры простого компонента
Исполняемый файл component.php
Файл с

описанием компонента и указанием его расположения в виртуальном дереве компонентов
Файл с описанием параметров компонента
Справка
«Языковые» файлы
Папка с шаблонами компонента
Папка с инсталляторами и деинсталляторами (зарезервирована)
Вспомогательные ресурсы
Исполняемый файл содержит логику определения запрашиваемой страницы

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

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


Слайд 16Шаблон комплексного компонента
Отличия от шаблона обычного компонента:
В обычном компоненте один файл

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

Слайд 17Код страницы шаблона комплексного компонента
Для каждой страницы комплексного компонента свой файл

шаблона имя_страницы.ext
Файл шаблона содержит подключение одного или нескольких дочерних (обычных) компонентов
Входящие параметры дочерних компонентов: входящие параметры комплексного компонента, данные из массива результатов работы комплексного компонента, прочие значения.
В дочерний компонент передается объект комплексного компонента $component
Шаблон дочернего компонента сначала ищется в шаблонах комплексного компонента, а потом – среди своих собственных шаблонов


Слайд 18ЧПУ
ЧПУ – ЧеловекоПонятный Урл (URL)
SEF URL – Search Engine Friendly URL
понятный

и логичный адрес, похожий на адрес в файловой системе
без параметров после ?
пользователь стирает часть адреса до ближайшей косой черты и рассчитывает попасть на уровень выше того, где он находился
вместо идентификаторов символические имена
/forum/index.php?mode=topic&topic_id=25
/forum/topic.php?id=25
/forum/topic/25/



Слайд 19Система обработки адресов
В .htaccess с помощью mod_rewrite или 404 подключается система

UrlRewrite
В файле настроек UrlRewrite автоматически регистрируются страницы с компонентами, которые настроены на работу в режиме ЧПУ
Если запрошена несуществующая страница, то система UrlRewrite проверяет, зарегистрирована ли такая страница в ее файле данных. Если страница зарегистрирована, то управление передается на реально существующий файл. Иначе выдается 404 ошибка.
Можно использовать не только для компонентов (например, старые и новые страницы)

Слайд 20Поддержка ЧПУ компонентами
1
2
3
Входной параметр SEF_MODE. Возможные значения: Y – компонент работает

в режиме ЧПУ, N – все данные передаются в параметрах HTTP запроса (рис. 1)
Входной параметр SEF_FOLDER – путь до папки, в которой работает компонент. Путь может быть виртуальным (рис. 1)
В каждом многостраничном компоненте определен набор шаблонов путей по умолчанию. Он переопределяется входным параметром SEF_URL_TEMPLATES (рис. 2)
При сохранении страницы с компонентом, у которого SEF_MODE установлен в значение Y, создается запись в файле данных системы UrlRewrite (рис. 3)
При поступлении запроса на страницу, которая реально не существует, система UrlRewrite ищет в своем файле данных подходящую запись (соответствующую выражению в ключе CONDITION) и передает управление на файл, указанный в ключе PATH
Компонент вычленяет параметры из строки запроса, основываясь на шаблонах путей
Параметры из строки запроса можно переопределять с помощью входящего параметра компонента VARIABLE_ALIASES


Слайд 21Кеширование в компонентах
Встроенная поддержка кеширования – методы CBitrixComponent
StartResultCache
время кеширования (False =

$arParams["CACHE_TIME"])
дополнительные зависимости кэша кроме SITE_ID, имени компонента, пути к файлу и $arParams (False = нет)
путь к файлу кеша (False = "/".SITE_ID.<путь к компоненту относительно bitrix/components>)
AbortResultCache – оптимистическая стратегия
IncludeComponentTemplate - завершение кеширования и сохранение кеша
ClearResultCache – принудительная очистка кеша
Ограничение – одно подключение кеша на компонент

Слайд 22Автокеширование
CACHE_TYPE
COption
Кешировать
Не
кешировать
Y
N
A
Y
N
Стандартный параметр компонента CACHE_TYPE: включить кеширование, выключить кеширование и автокеширование (по

умолчанию)
В случае установки автокеширования – глобальный выбор включения/выключения кеширования
COption::GetOptionString("main", "component_cache_on", "Y")
Форма настройки в административной части сайта

Слайд 23Дальнейшие планы

Инсталляция
Документация по системным компонентам
Система обновлений компонентов
Рынок сторонних компонентов



Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

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


Для правообладателей

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