如果我想在PHP中创建一个Helper类,那么这是最好/最正确的方法?
包含这样的静态方法的Helper类:
<?php
class Helper {
static function helpThis() {
// code
}
static function helpThat() {
// code
}
}
?>
或
创建一个包含许多函数的PHP文件:
<?php
function helpThis() {
// code
}
function helpThat() {
// code
}
?>
答案 0 :(得分:3)
我建议创建一个类。
通过这种方式,您可以避免在使用这些功能之前每次都添加include helper.inc.php
。
另一方面,班级可以是autoloaded:Helper::helpThis()
,就是这样。
答案 1 :(得分:1)
我想将这些方法放在一个类中总是“更好”。它不仅看起来更好,而且在使用类时,更容易知道每个函数/方法的作用。例如,您可以创建一个主辅助类和几个派生自主类的辅助类。一切都到位,然后清楚地了解它的作用。 ;)
答案 2 :(得分:0)
我可以想到一些很好的理由来选择一个静态方法而不是函数的类。
更多背景信息。类名本身提供的上下文不仅仅是函数名。如果您尝试使用函数提供相同的信息,则最终会使用非常详细的函数名称。请考虑以下示例:
UserTemplateHelper::printId($user);
// ... VS ...
userTemplateHelperPrintId($user);
人们通常做的是懒惰,所以函数名称通常不像上面显示的那样冗长。这就是为什么你最终可能会提供更少的背景。因此,您的代码可读性较差。此外,如果您想将UserTemplateHelper
更改为其他内容,只更改类名而不是使用该前缀的许多函数更容易。
Autoload VS include。 include 和 require 通常会使应用程序更容易出错。它们也很难使用,因为它只是另一种类型。此外,他们确实做的是创建一个维护较少的应用程序,因为你可能最终将包含的传播到处都是一个自动加载。我认为通常最好集中逻辑。
共享变量。您可能希望稍后在函数之间共享一些变量。通过声明私有静态变量而不是使用难以调试且通常是邪恶的global
关键字,这样做更容易。