Прежде всего вам необходимо понять, что взятие ваших старых процедурных стилевых функций и их обертывание внутри объектов не делает ваш код объектно-ориентированным, это просто означает, что вы пишете более сложный и ужасно уродливый процедурный код.
Во-вторых, я настоятельно рекомендую, на самом деле, я не могу быть слишком настойчивым в своих рекомендациях, что вы потратите некоторое время, чтобы хотя бы изучить различные фреймворки PHP, которые существуют. Хотя вы можете никогда не использовать ни одного из них, я чувствую себя в полной безопасности, гарантируя, что изучение любого из них даст вам лучшее понимание объектно-ориентированных принципов и хорошего дизайна приложений в целом. В случае, если вы никогда не видели ничего раньше, вам следует начать со следующего:
- Zend Framework
- Symfony
- CakePHP
- Солнечные рамки
Кроме того, если вы никогда не слышали о Мартине Фаулере или «Образцах архитектуры корпоративных приложений», я настоятельно рекомендую вам попытаться подобрать копию. Он буквально написал книгу, которая предоставила основные шаблоны, которые используются в КАЖДОЙ популярной веб-среде.
Вот вам и мой «читай ответ»: -P
В вашем конкретном случае я бы начал с базового шаблона Active Record, который содержал бы логику доступа к вашей базе данных и логику вашего домена. В этом типе шаблона каждая таблица базы данных (пользователи, статьи, комментарии) представлена отдельным объектом. Базовый класс Active Record для пользователей будет содержать все функции для получения конкретного пользователя или списка пользователей, а также функции для вставки, обновления или удаления пользователя. Кроме того, класс User Active Record будет содержать методы для загрузки статей и комментариев пользователя.
Пользовательский класс оболочки может выглядеть примерно так:
class User extends Active_Record {
public function find() {}
/**
Single function performs inserts and updates for the object
**/
public function save() {}
public function delete() {}
public function getArticles() {}
public function getComments() {}
}