Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 9 лет назад пользователемЛариса Стрыгина
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 Поддержка ЧПУ компонентами Входной параметр 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. ) AbortResultCache – оптимистическая стратегия IncludeComponentTemplate - завершение кэширования и сохранение кеша ClearResultCache – принудительная очистка кеша Ограничение – одно подключение кеша на компонент
22 Автокэширование CACHE_TYPE COption Кешировать Не кэшировать YN A Y N Стандартный параметр компонента CACHE_TYPE: включить кэширование, выключить кэширование и автокэширование (по умолчанию) В случае установки автокэширования – глобальный выбор включения/выключения кэширования COption::GetOptionString("main", "component_cache_on", "Y") Форма настройки в административной части сайта
23 Дальнейшие планы Инсталляция Документация по системным компонентам Система обновлений компонентов Рынок сторонних компонентов
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.