Класс или функция PHP?

Сразу говорю - это не вопрос про Класс VS Функция.

В общем есть такая ситуация:
class profile {
static function info($id){Здесь я делаю запрос в БД и получаю информацию о пользователе.}
}


Но ведь можно было просто сделать функцию profile_info? В чём разница и что лучше использовать?
  • Вопрос задан
  • 4436 просмотров
Решения вопроса 2
ООП отличается от использования функций тремя особенностями: полиморфизм, инкапсуляция и наследование. Если ни одна из этих особенностей не нужна, то объективных причин использовать классы нет.
Ответ написан
svd71
@svd71
Можно. В том контексте в котором вы преподнесли смысла действительно нет.
Но вот при рассметрении нескольких функций и полей результат уже очевиден. А зачем скреплять страницы в книге, если можно читать и так?

Сначала ответьте себе на вопрос за каким нужно ООП и что такое класс в вашем понимании.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@Vampiro
Будьте откровенны с собой.
строка
$info = profile_info($user_id) не совсем явно рассказывает вам, что в этом месте вы полезете в базу данных за информацией о пользователе. И скорее всего вам придется писать комментарий.
для строки
$info = (new User())->loadFromDatabase($userId)->getInfo();
коммента не нужно.

Для проектов со временем жизни больше трех дней я рекомендую делать классы по мере возможностей.

Это как яичница. Можно пожарить два яйца и сожрать вприкуску с луком и бутербродом с колбасой. А можно сделать глазунью и нарезать туда колбаски, помидорки, лучок, все обжарить, чтобы шкварчало... пойду поем чего-нить.
Ответ написан
Комментировать
@gro
Зачем функция, когда можно просто запрос сделать?
Ответ написан
arutyunov
@arutyunov
Mooza.ru — Делаем сайты
Писать класс только с одной лишь функцией, да еще и статической, действительно смысла нет.
Такой подход подойдет лишь в том случае, если в дальнейшем класс profile будет расширяться.

Если же в проекте все довольно просто - этот запрос можно поместить либо в отдельную функцию, либо эту статичную функцию внести в какой-нибудь более общий класс.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы