Я проектировал сайт локально в PHP 5, но столкнулся с несколькими проблемами дизайна, которые я хотел бы получить сейчас.
В настоящее время на сайте есть три функции, и у каждой функции есть свой класс. Эти функции следующие:
- блог
- список друзей
- набор изображений
У меня есть класс для каждого, но в каждом классе я в основном определяю похожий метод, который получает все [блоги | Друзья | изображений]. Мне было интересно, знает ли кто-нибудь из вас, как я могу уменьшить эти классы, чтобы они стали намного тоньше и, вероятно, имели бы один класс, который является общим для всех трех функций для всех методов, одинаковых для каждой функции. (т.е. getAllById ($ feature, $ id)).
Пример функции для моего существующего класса блога выглядит следующим образом:
function getBlogsByUserId($userId) {
global $db;
$blogs = array();
$db->where(array("userId"=>$userId));
$rows = $db->get("blog")->fetch(0);
foreach($rows as $row) {
$blog = new Blog();
$blog->id = $row['id'];
$blog->userId = $row['userId'];
$blog->content = $row['content'];
$blogs[] = $blog;
}
return $blogs;
}
Примечание: я определил свой собственный класс для БД, так что не беспокойтесь об этом.
Я посмотрел шаблон проектирования шлюза, но пока не нашел решения.
Я также хочу, чтобы это можно было использовать повторно, поэтому если я увеличу количество функций до семи или более, мне не придется менять большую часть класса.
Спасибо,
Matt