gpt4 book ai didi

php - 在 PHP MVC 中创建方法函数的最佳实践是什么?

转载 作者:可可西里 更新时间:2023-11-01 01:09:03 26 4
gpt4 key购买 nike

我想知道将信息从 Controller 传递到模型时什么是最佳实践。更具体地说,我正在一个用户类中创建一个用户注册模型,该模型要求提供某些信息,例如电子邮件、姓名和密码。

我想知道是将参数放在模型函数中并以这种方式传递它们更好,还是只调用函数并使用 $_POST 变量进行查询更好。

这是我所指的两个例子。

方法一

function register(){

$first_name = $this->input->post('first_name');
$last_name = $this->input->post('last_name');
$email = $this->input->post('email');
$password = $this->input->post('password_1');

$this->user_model->register_user($email, $password, $first_name, $last_name));}

function register_user($email, $password, $first_name, $last_name){
$sql = "INSERT INTO users (user_id, email, passwd, first_name, last_name, registration_date, confirmed, confirmation_code, banned)VALUES (NULL, ?, ?, ?, ?, '".date('Y-m-d')."', 'no', '1fg455675', 'no')";
$register = $this->db->query($sql, array($email, $password, $first_name, $last_name));
return $register;
}

方法二

function register(){
$this->user_model->register_user());
}

function register_user(){

$first_name = $this->input->post('first_name');
$last_name = $this->input->post('last_name');
$email = $this->input->post('email');
$password = $this->input->post('password_1');


$sql = "INSERT INTO users (user_id, email, passwd, first_name, last_name, registration_date, confirmed, confirmation_code, banned)VALUES (NULL, ?, ?, ?, ?, '".date('Y-m-d')."', 'no', '1fg455675', 'no')";
$register = $this->db->query($sql, array($email, $password, $first_name, $last_name));
return $register;
}

为了简化问题,我删除了很多验证代码,希望您能理解。

最佳答案

您不应该从您的模型访问您的 POST 变量。这将使您的模型的可重用性降低,因为现在它们依赖 POST 数据来工作。例如,在其他时候,如果您需要一种方法来做同样的事情,但是您从其他来源 (CSV) 获取数据,您将无法使用相同的模型,因为您已经将它与发布。

当你使用这样的结构时,尽量将它们解耦

关于php - 在 PHP MVC 中创建方法函数的最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5256184/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com