连接课程的最佳方式

时间:2018-01-17 14:53:25

标签: php class oop architecture construct

所以,我没有使用任何框架,使用PHP在MVC架构上开发系统并且有几个组件。其中一个是Sanitize,用于过滤变种。

我遇到的问题是,如何更好地消毒变量?

更容易在示例中显示:

class Sanitize {
    public function sanitizeString($string) {
        return filter_var($string, FILTER_SANITIZE_STRING);
    }
}

然后我想要在模型和控制器以及几乎所有文件上执行此类。每次$ sanitize = new Sanitize都不要写;我以前用来添加一个公共的__construct函数来创建一个sanitize var。

private $sanitize;
public function __construct() {
    $sanitize = new Sanitize();
}

然后我只使用

在我的函数中调用它
$string = $this->sanitize->sanitizeString($string);

问题是我有点偏执,所以我会在每个类中自动连接一个清理类,特别是模型,以便在数据进入数据库时​​清理数据。所以这里发生了类似递归的事情,并且有一个一遍又一遍地创建的var。例如,控制器将使用构造创建一个清理类。然后在一个方法中,我将在模型User中创建一个新类,User类还会在其中创建一个清理,以及来自Cookie和Access类的一些数据,这两个数据都会在其中创建清理。

所以我调用了1个方法,但它创建了4个重复消毒,有些甚至没有需要......

最佳做法是什么?我做得对吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

快速划分一个解决方案:

var envelopesApi = new docusign.EnvelopesApi();
 envelopesApi.createEnvelope(loginAccounts[0].accountId, envDef, null, function(error, envelopeSummary, response) {
if (error) {
  console.log('Errors: ' + JSON.stringify(error));
  return next(error);
}
if (envelopeSummary) {
  console.log("EnvelopeSummary:" + JSON.stringify(envelopeSummary));
  const envelopeId = envelopeSummary.envelopeId;
}
});