У меня есть несколько функций, связанных с куки-файлами. Было бы ужасной идеей группировать их, переместив их в собственный класс и использовать в качестве статических методов?
Функции:
function cookie_get(){} function cookie_set(){} function cookie_delete(){}
Статические методы:
class cookie { static function get(){} static function set(){} static function delete(){} }
Да, это было бы ужасной идеей, потому что статические методы трудно тестировать и макетировать . Почему бы просто не создать настоящий класс Cookie, который можно настроить во время выполнения с помощью этих методов в качестве обычных методов.
Если вы просто хотите сгруппировать эти функции в пакет, вы можете просто использовать пространство имен .
Изменить : поскольку вы внесли это в комментарии: да, для любых целей тестирования регулярные функции являются такими же неустойчивыми, как и для статистики. Таким образом, ваша первоначальная ситуация «ужасна», как изменение ее для использования статического класса. Даже псевдопространство не дает вам никаких преимуществ, потому что вы уже применили это к своим обычным функциям. cookie_get
так же хорош или плох, как Cookie::get
.
Это была бы отличная идея, если бы вы полностью знали о связанных с этим мерах . Это называется Утилита :
Хорошими кандидатами для классов полезности являются удобные методы, которые можно сгруппировать вместе функционально.
На самом деле хорошей практикой является организация таких функций. Современной альтернативой было бы использование пространства имен .
Это был бы отличный способ организовать ваш код, но зачем использовать статические функции, просто создайте класс для требуемой функциональности.
Или, как сказано выше, используйте пространства имен, но я не особенно знаком с их плюсами и минусами.
$cookie->get()
лучше работать, чем cookie_get()
на мой взгляд