В моем проекте много блоков html-кода, которые я повторно использую в разных местах с небольшими вариациями. Например, у меня есть блок кода, определяющий информационный баннер, но текст и цветовая схема различаются.
Я вижу два способа "включить" его в мой основной шаблон:
1.
#set( $infoBannerText = "This is an info banner..." )
#set( $infoBannerColor = "YELLOW" ) ## predefined map with color-related properties
#parse( "info-banner" )
- С определением
#macro( info_banner $infoBannerText $infoBannerColor )
до:
#info_banner( "This is an info banner..." "YELLOW" )
Я вижу следующие преимущества/недостатки: Второй более надежен с точки зрения отсутствующих определений переменных или непреднамеренной перезаписи переменных. Принимая во внимание, что первый имеет лучшую производительность и обеспечивает более чистую структуру повторно используемых частей, которые я могу хранить в отдельных файлах. Использование макросов похоже на то, что в итоге я получу большой файл макроса, которому не хватает ясности.
Почему-то я предпочитаю первое решение, но хотел бы знать, что такое "Лучшая практика" или какой у вас опыт.
Звучит как отличное решение, сочетающее в себе преимущества обоих решений!