Работая много с проектами на bitrix постоянно раздражает проблема что в шаблоне (который является VIEW проекта) очень много логики роутинга.
К примеру сайдбар выводят только если
Что и говорить, если проект развивается больше 1-2 лет, то код становится сущим кошмаром. Весь шаблон превращается в огромное количество условий и логики роутинга. Доводилось читать стандарты разных студий (в т.ч. сертифицированных партнеров) где прописано что такой подход оптимальный - нужно для всего проекта делать только один шаблон. Все что более - ошибка.
Мы сели с командой и пришли к некоторым столпам которая с нашей точки зрения упростила бы разработку на bitrix.
Понятия:
Глобальный шаблон = .default
Локальные шаблоны = main, vn, catalog, catalog-sidebar и т.д. - обычные шаблоны.
Чанк = вставка php файла, именнованного в папке
6. весь билд верстки (css,js,img,pic) помещается в .default шаблон. (Мы используем gulp сборщик для front-end)
7. в каждом шаблоне мы используем папку include/ для чанков.
8. все глобальные чанки (которые будут использоваться во всех шаблонах) - находятся в папке .default/include
9. каждый чанк подключается функцией которая проверяет наличие в локальном шаблоне чанк, и если его там нет - подключает из глобального шаблона (.default)
10. условия роутинга в шаблоне допускаются лишь в самом крайнем случае
11. все файлы css и js подключаются с помощью ShowViewContent / AddViewContent в коде. (Такой подход т.к. bitrix до сих пор подключает по умолчанию скрипты в шапку если добавлять через нативную AddHeadScript, в документации другого метода не увидел, если есть - поправьте. Само собой скрипты должны отрабатывать вконце страницы дабы не замедлять работу скорость рендеринга в браузере).
12. Шаблоны компонентов сохраняем в глобальный шаблон
Данный набор правил значительно облегчает сущность шаблонов bitrix, позволяя делать их больше, и роутинг осуществлять уже только в начале.
Это немного измененная часть из нашего внутреннего стандарта разработки на bitrix. Часть требований к самому шаблону задокументирована в вики репозитория проекта дабы другие студии поняли ее краткие принципы если доведется работать с нашими проектами.
Возможно все что выше описано в шаблонах уже применяется многими, но к сожалению в тех проектах которые нам падали в регионе мы нигде не увидели хорошо и грамотно написанных проектов, повсеместно огромные простыни условий роутинга в шаблонах применяемых от подключения скриптов до html блоков.
К примеру сайдбар выводят только если
Код |
---|
if ($APPLICATION->GetCurDir() === '/catalog/' ||$APPLICATION->GetCurDir() === '/contancts/'){ // выводим сайдбар } |
Мы сели с командой и пришли к некоторым столпам которая с нашей точки зрения упростила бы разработку на bitrix.
Понятия:
Глобальный шаблон = .default
Локальные шаблоны = main, vn, catalog, catalog-sidebar и т.д. - обычные шаблоны.
Чанк = вставка php файла, именнованного в папке
6. весь билд верстки (css,js,img,pic) помещается в .default шаблон. (Мы используем gulp сборщик для front-end)
7. в каждом шаблоне мы используем папку include/ для чанков.
8. все глобальные чанки (которые будут использоваться во всех шаблонах) - находятся в папке .default/include
9. каждый чанк подключается функцией которая проверяет наличие в локальном шаблоне чанк, и если его там нет - подключает из глобального шаблона (.default)
10. условия роутинга в шаблоне допускаются лишь в самом крайнем случае
11. все файлы css и js подключаются с помощью ShowViewContent / AddViewContent в коде. (Такой подход т.к. bitrix до сих пор подключает по умолчанию скрипты в шапку если добавлять через нативную AddHeadScript, в документации другого метода не увидел, если есть - поправьте. Само собой скрипты должны отрабатывать вконце страницы дабы не замедлять работу скорость рендеринга в браузере).
12. Шаблоны компонентов сохраняем в глобальный шаблон
Данный набор правил значительно облегчает сущность шаблонов bitrix, позволяя делать их больше, и роутинг осуществлять уже только в начале.
Это немного измененная часть из нашего внутреннего стандарта разработки на bitrix. Часть требований к самому шаблону задокументирована в вики репозитория проекта дабы другие студии поняли ее краткие принципы если доведется работать с нашими проектами.
Возможно все что выше описано в шаблонах уже применяется многими, но к сожалению в тех проектах которые нам падали в регионе мы нигде не увидели хорошо и грамотно написанных проектов, повсеместно огромные простыни условий роутинга в шаблонах применяемых от подключения скриптов до html блоков.