【问题标题】:What is the right way for write methods in php mvc(codeigniter)在php mvc(codeigniter)中编写方法的正确方法是什么
【发布时间】:2016-09-06 07:25:08
【问题描述】:

请任何机构提供帮助。

在codeigniter中使用方法(函数)的正确过程。

我的意思是为模型中的每个任务编写单独的方法或使用一种用于通用目的的方法。 即

1:-一种方法

  public function insert_records($tabel, $data){
        return $this->db->insert($tabel, $data);
    }

2:-第二种方法

public function insert_user(){
     return $this->db->insert('users', array('name'=>$this->input->post('name'),'email'=>$this->input->post('email'));
    }

老师也一样

public function insert_teacher(){
         return $this->db->insert('teachers', array('name'=>$this->input->post('name'),'email'=>$this->input->post('email'));
        }

请给出正确的解决方案,最好是使用单独的函数,还是最好在一个函数中传递数据和表名。? 如果有人没有正确的解决方案,请让专家给出正确的解决方案。

【问题讨论】:

标签: php mysql model-view-controller


【解决方案1】:

你的问题有点笼统,但我会尽量回答。

首先,带有 MVC 实现的 PHP 是一种过时的方法。在现代解决方案(支持 Angular 或 React)上,您将 View 部分从 PHP 中完全移开,留下应用程序逻辑、数据和简单的 API。这是一种 MVVM 模式,可带来更好的整体用户体验。

其次,回答你的问题:

  1. 在脚本启动期间可以阻止对$_GET$_POST$_REQUEST 的直接访问。您的路由器应读取数据,然后使用unset() 防止任何进一步的直接访问。
  2. 使用 ORM。您不应该编写 SQL 查询,除非在非常特殊的情况下由于某些性能原因需要它。
  3. 进行代码审查。使用正确的 GIT 流程将允许您在合并之前检查其他开发人员的更改。这将为您提供一些空间来讨论您的编码风格,并提出一套每个人都将遵守的规则。
  4. 再次,使用 ORM。这将绝对清楚 protected class User 不能用于插入。只有class Teacher extends Userinsert()可以插入数据。

【讨论】:

  • 我的问题的主要目的是对控制器或模型中的每个进程使用单独的方法是最好的。或者使用多用途方法的方式,我们只能通过传递不同的参数来处理许多任务。
  • unsetting superglobals 是一个巨大的 wtf。此外,“使用 ORM”是一个笼统的陈述,笼统的陈述大多不是基于对该领域的实际调查。
  • 所以不要那样做!?覆盖超全局变量是一个可怕的想法,因为人们/代码期望它存在。除了烦人/破坏代码之外,通过取消设置你什么也得不到。
  • 你的做法相当于:“人们不应该开得太快,所以我把所有车辆的所有轮子都拆掉了”
  • 这根本不像register_globalsregister_globals 是一个等待发生的潜在安全问题,因为它在不知道数据来自何处的情况下覆盖/初始化变量。让无辜的用户在不知情的情况下使用潜在的危险数据。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-22
  • 2017-04-20
  • 1970-01-01
  • 2011-05-01
  • 2014-11-01
  • 1970-01-01
相关资源
最近更新 更多