Комментарии 2
Зачем нужно создавать отдельный трейт WithCustomerInfo? Выглядит как будто его функции будут использоваться только в CustomerView, а если где-то еще нужна будет эта информация, то будет использоваться сам CustomerView
Повторный вызов одних и тех же методов View-класса может быть операцией снижающей производительность, поэтому часто к этим методам я прикручиваю кеширование, чтобы значение вычислялось только один раз.
Получение acf полей и стандартных данных типа get_the_title и так ведь кэшируется на текущий запрос. Или имеется ввиду случаи, когда перед выводом с данными происходят дополнительные трансформации?
Зачем нужно создавать отдельный трейт
WithCustomerInfo? Выглядит как будто его функции будут использоваться только вCustomerView
Действительно, если методы будут использоваться только в CustomerView, то следует писать их прямо там без трейта. Я дергал для примера куски кода из разных проектов, в данном случае было два вида клиентов: компании и физлица, часть их полей пересекалась в трейте WithCustomerInfo
Получение acf полей и стандартных данных типа
get_the_titleи так ведь кэшируется на текущий запрос. Или имеется ввиду случаи, когда перед выводом с данными происходят дополнительные трансформации?
Все так. Кеширование необходимо в случаях, если в методе присутствуют какие-либо дополнительные вычисления. Особенно, если они касаются запросов к базе.
С другой стороны, если внутри метода вызывается что-либо, что может быть переопределено через хук, то мы не можем быть уверены, что оно всегда будет работать быстро. Особенно если проект большой и разработчиков на нем более чем один, или если среди разработчиков есть нейросети. Поэтому кешированием стоит пренебрегать только если вы на 100% уверены, что повторный вызов метода не будет генерировать дополнительных запросов к БД или выполнять что-нибудь ресурсозатратное.

Организация бизнес-логики сложного сайта на WordPress