我目前正在改进我自己的 MVC,但我无法为以下场景找到一个好的解决方案:从控制器(我基本上告诉模型如何处理输入)到各种模型。目前,我将每个用户输入都放入一个属性中:
foreach($this->properties as $property => $empty)
{
if(isset($_POST[$property]))
{
$this->properties[$property] = htmlspecialchars(trim($_POST[$property]));
}
}
最终,当我需要一个新模型来做某事时,我会这样称呼它:
new view('calendar',$data,$this->properties);
最后在模型中,我通过将输入/变量放入模型属性中来接收它们……</p>
class validation
{
public function __construct($values)
{
foreach($values as $property => $value)
{
$this->{$property} = $value;
}
}
}
这样我就不必考虑变量的来源(在验证用户输入之后,我不再关心)并且总是可以为我写一个干净的阅读版本$this->user_input
但不知何故,我觉得这不是最简单的方法,也可能不是一个好方法。最困扰我的是,在编写新的类/模型时,我总是要告诉模型将输入带入自己的属性中,并且在调用新类时总是要传递参数。
有没有什么方法可以让我在调用新类时从用户那里继承这些变量,而无需让控制器成为父类 - 或者让控制器成为父类实际上是否有意义?我认为当另一个控制器使用该模型时会令人困惑。