ГЛЕБ ГЛЕБОВ: классы проще проецировать на объекты вашей бизес логики. У вас есть пользователи - класс User. Нужен сервис который этими пользователями управляет - UserManager, который умеет лазить в базу и забирать данные. Хотим связывать пользователей - нам нужно что-то что бы закрепить отношения. Либо мы делаем свою ORM что сложно либо делаем отдельный менеджер или в рамках UserManager делаем метод который позволяет нам вернуть для выбранного пользованеля (не по ID а по объекту User) всех его друзей или подписчиков.
ГЛЕБ ГЛЕБОВ: вы понимаете разницу между функциями и методами класса? Судя по приведенному вами примеру вы просто заварачиваете функции в классы. То есть никакого ООП и т.д. Тупо процедурный код с классами вместо неймспэйсов. Я правильно вас понял?
xmoonlight: оукей, может я туплю... Но как постоянные соединения (мы же не подключаемся к базе в цикле) влияют на то что вместо одного запроса нам придется сделать N запросов в базу? Даже если представить что один запрос в базу это милисекунда + накладные расходы на обработку результатов это +5 милисекунд мы уже получаем 60 милисекунд работы скрипта и даже за счет кеширования в самой базе ничего сильно не поменяется.