我有几个处理cookie的功能.将他们移动到自己的课堂并将其用作静态方法来分组,这是一个可怕的想法吗?
功能:
function cookie_get(){} function cookie_set(){} function cookie_delete(){}
静态方法:
class cookie { static function get(){} static function set(){} static function delete(){} }
是的,这将是一个可怕的想法,因为
static methods are hard to test and mock.为什么不创建一个真正的Cookie类,您可以在运行时配置这些方法作为常规方法.
如果您只想将这些功能分组到一个包中,您也可以按照use Namespaces.
编辑:由于您在评论中提出了这一点:是的,对于任何测试目的,常规功能与静态无关.所以你的初始情况就像改变它使用一个静态类一样“可怕”.即使是伪命名空间也没有给你任何优势,因为你已经将它应用到你的常规功能了. cookie_get与Cookie :: get一样好或坏.