Просмотров: 42351
Дата последнего изменения: 16.03.2022
Сложность урока:
3 уровень - средняя сложность. Необходимо внимание и немного подумать.
4
5
Недоступно в лицензиях:
Ограничений нет
| Цитатник веб-разработчиков.
Антон Долганин: Строжайше запрещено писать любую PHP-логику на обычной странице сайта. Любой php-код должен инкапсулироваться в компоненты. Максимум, что позволяется - использовать подключение скриптов с помощью IncludeFile, но это если разработчик полностью отдает себе отчет в том, что этого делать нельзя и это будет исправлено в ближайшее время, или того действительно требует логика проекта (единичные случаи). |
Компонент – основной способ вывода информации в Bitrix Framework. Соответственно именно работа с ним дает максимальные возможности по изменению условий вывода данных и изменению (добавлению) функционала системы.
Рекомендуемое соотношение задач и способов их решений:
- Для решения задач изменения формы вывода данных модифицируйте шаблон компонента.
- Для изменения и дополнения кешируемых данных, выводимых компонентом, используйте возможности файла result_modifier.php.
- Для реализации логики, отрабатывающей при каждом вызове компонента независимо от кеширования, используйте возможности файла component_epilog.php.
- Для дополнения и неявного изменения (без вмешательства в код) логики работы компонента можно использовать технологию Событий.
- Для дополнения логики работы компонента копируйте компонент в свое пространство имен и изменяйте его.
- Для создания новой логики и новых возможностей создавайте компонент заново.
Достаточно часто задачу приходится решать комбинацией методов. То есть, например, редактировать шаблон и добавлять код в result_modifier.php.
В указанном порядке задач и способов решений и мы рассмотрим работу с компонентами в главах ниже.
Внимание! Осуществляя любые действия по работе с компонентами надо также учитывать кеширование. Внедрение тяжелых кодов в component_epilog.php под кеширование не попадает. И бывают случаи, когда все же правильнее кастомизировать компонент, что дает выигрыш в производительности (особенно, если какой-то тяжелый код используется на главной или наиболее часто посещаемой странице).