Как придумать логику для вывода пользователей? Всем привет! Объясните плз на примере вывода пользователей, как построить логику приложения так, чтобы код максимально не повторялся и как его правильно разбить по классам. - На одной из страниц есть вывод списка пользователей, - На другой странице выводятся мои друзья. - На третьей странице пользователи состоящие в группе Все три варианта вывода немного отличаются друг от друга визуально (где-то есть кнопка, где-то нет логина, где-то нет аватара) Я не могу понять... Получается мне нужны три разных php файла, в котором будут делаться запросы к базе со своими условиями. Дальше в каждом подключаем один класс "showUsers" и делаем что-то вроде:while($row = $res->fetch_assoc()){ $showUsers = new showUsers($tpl, $row); // передаем объект шаблонизатора и данные юзера $showUsers = setView('friends'); // указываем что выводим для показа на странице "мои друзья" $users[] = $showUsers->show(); // формируем html и записываем в массив } // дальше собираем все в одну строку и выводим т.е. суть в том, что класс формирования html у нас один с разными выриантами вывода, а получение пользователей из базы в каждом модуле отдельное? Я правильно копаю? А если это будет вывод комментариев, там тоже выводится аватар пользователя имя и прочее. Я уже не смогу совместить со своим классом? Как это вообще делается, где можно посмотреть пример?
Да, вы правильно копаете. Для того чтобы избежать повторения кода и сделать его более структурированным, можно создать класс showUsers, который будет отвечать за формирование html для вывода пользователей с различными вариантами. Класс showUsers может принимать параметр, например, $view, который будет определять, какой вид пользователей нужно отобразить: друзья, пользователи из группы и т.д.
Примерно так:
class showUsers { private $tpl; private $row; private $view; public function __construct($tpl, $row, $view) { $this->tpl = $tpl; $this->row = $row; $this->view = $view; } public function show() { // формирование html в зависимости от вида пользователей if($this->view == 'friends') { // вывод друзей } elseif($this->view == 'group') { // вывод пользователей из группы } elseif($this->view == 'comments') { // вывод комментариев } } } // Пример использования: while($row = $res->fetch_assoc()){ $showUsers = new showUsers($tpl, $row, 'friends'); // передаем объект шаблонизатора, данные юзера и тип вывода $users[] = $showUsers->show(); // формируем html и записываем в массив } // дальше собираем все в одну строку и выводим
Таким образом, вы можете использовать один класс для формирования html с разными вариантами вывода пользователей. Класс showUsers изолирует логику формирования html от запросов к базе данных, что делает ваш код более модульным и удобным для поддержки.
Примеры и учебные материалы по созданию классов и организации кода на PHP можно найти в интернете, например, на специализированных ресурсах для программистов, в документации PHP или на популярных ресурсах для обучения программированию.
Да, вы правильно копаете. Для того чтобы избежать повторения кода и сделать его более структурированным, можно создать класс showUsers, который будет отвечать за формирование html для вывода пользователей с различными вариантами. Класс showUsers может принимать параметр, например, $view, который будет определять, какой вид пользователей нужно отобразить: друзья, пользователи из группы и т.д.
Примерно так:
class showUsers {private $tpl;
private $row;
private $view;
public function __construct($tpl, $row, $view) {
$this->tpl = $tpl;
$this->row = $row;
$this->view = $view;
}
public function show() {
// формирование html в зависимости от вида пользователей
if($this->view == 'friends') {
// вывод друзей
} elseif($this->view == 'group') {
// вывод пользователей из группы
} elseif($this->view == 'comments') {
// вывод комментариев
}
}
}
// Пример использования:
while($row = $res->fetch_assoc()){
$showUsers = new showUsers($tpl, $row, 'friends'); // передаем объект шаблонизатора, данные юзера и тип вывода
$users[] = $showUsers->show(); // формируем html и записываем в массив
}
// дальше собираем все в одну строку и выводим
Таким образом, вы можете использовать один класс для формирования html с разными вариантами вывода пользователей. Класс showUsers изолирует логику формирования html от запросов к базе данных, что делает ваш код более модульным и удобным для поддержки.
Примеры и учебные материалы по созданию классов и организации кода на PHP можно найти в интернете, например, на специализированных ресурсах для программистов, в документации PHP или на популярных ресурсах для обучения программированию.