Должны ли данные при каждом новом обновлении перемешиваться снова и отличаться от предыдущего результата?
Ну это зависит от вашего задания, должны или нет
На вероятность и ее постоянство может влиять некоторый вес.
Ну например значение 'Maks' должно выпадать в 4 из 10 случаях, а 'Владимир' в 3 из 10
Тогда если все сделать верно, то можно сделать так чтобы с равной вероятностью выпадали нужные значения, тогда у этих значений должна быть колонка с этим весом.
Инкапсуляцию можно нарушить сделав приватную переменную и тут же определить методы его изменения и чтения :):) то есть добавили кода, добавили «инкапсуляцию», а все как было так и осталось — можем менять переменную класса... оксюморон, термины добавились, а толку нет
Потому предлагаю посмотреть на инкапсуляцию через закон Деметры, и помните — геттер нарушаю инкапсуляцию также как и сеттеры
0Bannon, я вам больше скажу: и работая в PHP можно выстроить свои требования и найти работу таким образом, чтобы не сталкиваться с говном типа битрикса и ВП — это как раз мой пример
Либо в связи OnToOne описать жадную загрузку
Вообще покажите описание маппинга для Product и для catalog, в товаре у вас есть геттер к catalogPrice?
В цикле видимо в шаблоне у вас дергается категория и/или сразу каталог-прайс у товара и через ленивый механизм идет запрос