Php MVC:仅用于用户注册的变量。放置在控制器辅助对象或模型中?

Php MVC:仅用于用户注册的变量。放置在控制器辅助对象或模型中?,php,model-view-controller,model,controller,Php,Model View Controller,Model,Controller,在清理MVC中的“注册”方法时,我发现自己处于灰色地带 快速背景:我创建与特定任务关联的值数组。 例如: $field_arr //array of all the values from the register-form. $user_arr //array of values needed to create a new user. $required_arr //array of all values that are required for sign up. $values_arr

在清理MVC中的“注册”方法时,我发现自己处于灰色地带

快速背景:我创建与特定任务关联的值数组。 例如:

$field_arr //array of all the values from the register-form.
$user_arr //array of values needed to create a new user.
$required_arr //array of all values that are required for sign up.
$values_arr //array that holds all the values for the items in the multiple arrays.
等等…等等

首先,我开始重新组织代码,将这些变量声明/填充块放在控制器中的一个helper函数中,“Register”控制器方法将在其例程开始时调用该函数

但我的脑子里突然出现了一个开关

由于该信息与 用户模型不应该被放置吗 在用户模型中

但后来我的另一边的头又回来了

是的,它确实相关,但仅用于 注册,因此 仅在控制器中有用

我的头哪一边错了?任何指导都将非常有帮助,我们将不胜感激。
谢谢。

我将在您的用户模型中创建一个
register
方法,并将所需信息从控制器传递给它,因为这是处理用户输入的应用程序的一部分。重用模型往往比重用控制器更容易发生,因此通过这样做,您可以在将来的项目中节省一些时间(只需复制您的用户模型)

另一个好处是,您现在可以从应用程序中的多个点使用此注册逻辑。诚然,用户注册并不是最好的例子,但我希望您看到这在其他情况下是多么有用

当我发现自己处于类似情况时,我喜欢记住的一句话是“瘦控制器,胖模型”。试着让你的控制器保持苗条,并让那些型号更丰满

编辑:这里有一些伪代码来帮助解释我的意思

class RegistrationController {
  function register() {
      // Sanitizing your data here would be a good idea
      $fieldArr = $_POST['data_from_your_form']; 

      $user = new User();
      $result = $user->register($fieldArr);

      if ($result) {
          // User successfully reg'd
      } else {
          // Oops! Problem registering user
      }
  }  
}

我将在您的用户模型中创建一个
register
方法,并将所需信息从控制器传递给它,因为这是处理用户输入的应用程序的一部分。重用模型往往比重用控制器更容易发生,因此通过这样做,您可以在将来的项目中节省一些时间(只需复制您的用户模型)

另一个好处是,您现在可以从应用程序中的多个点使用此注册逻辑。诚然,用户注册并不是最好的例子,但我希望您看到这在其他情况下是多么有用

当我发现自己处于类似情况时,我喜欢记住的一句话是“瘦控制器,胖模型”。试着让你的控制器保持苗条,并让那些型号更丰满

编辑:这里有一些伪代码来帮助解释我的意思

class RegistrationController {
  function register() {
      // Sanitizing your data here would be a good idea
      $fieldArr = $_POST['data_from_your_form']; 

      $user = new User();
      $result = $user->register($fieldArr);

      if ($result) {
          // User successfully reg'd
      } else {
          // Oops! Problem registering user
      }
  }  
}

谢谢你的回复。我现在要多读一些关于“胖模特”的书。(天哪,我喜欢这个短语)第三句“再次感谢”?老兄,你一定真的把我从偏头痛中救了出来。我的代码也谢谢你。谢谢你的回复。我现在要多读一些关于“胖模特”的书。(天哪,我喜欢这个短语)第三句“再次感谢”?老兄,你一定真的把我从偏头痛中救了出来。我的代码也谢谢你。