拥有一个仅用于清理/转义用户输入的 PHP 类是否有意义


Does it make sense to have a PHP class just for cleaning/escaping user input?

我的应用程序将大量数据保存到 MySql 数据库中,我想知道我是否应该使用单独的类来处理清理/转义,或者这是否矫枉过正?此外,我在 PDO 中使用预准备语句,所以我不确定我应该结合绑定参数进行多少清理或转义数据。

我知道古老的Perl格言,"有不止一种方法可以做到这一点",所以我不要求一个实际的解决方案。我只是想权衡调用另一个类来处理转义的好处,或者这个过程的简单性是否最好在本地处理。

如果你需要这样做,那为什么不呢?将东西放在类中然后要求它时,并没有矫枉过正。它还允许您测试代码。
无论如何,除了使用裸PHP函数之外,我没有看到其他方法可以做到这一点。

顺便说一下,PDO确实会逃逸。你班只会处理清洁

我不知道

这个问题是否有正确的答案,但我们确实出于您所说的原因使用类。 它为我们提供了一个标准位置来执行标准清理,但在我们的例子中,它还允许我们在数据进入数据库之前将业务规则应用于数据。 公平地说,我们传递的不仅仅是数据本身来做到这一点,但对于我们来说,这是一个很好的中心方式,可以对用户的一般输入进行一些控制。

是的,这取决于它如何构建您的应用程序,我通常有一个 Util 类,其中包含用于此类内容的方法,但是如果您有一些(或很多)用于清理输入数据的方法,您可以为它创建一个子类。

就像Grep P说的,这个问题没有正确或错误的答案。

每当你添加额外的代码时,就会有人声称它的运行速度慢X.XX微纳秒。 权衡收益只能是主观的,所以我认为你需要自己做出决定。

使用类或实用程序文件中的某些全局函数集合转义数据;唯一真正重要的是,您使用的代码很容易理解,下一个查看它的开发人员不必扯掉头发想知道您到底在想什么。