调用内置的 CodeIgniter 函数


Call built-in CodeIgniter function

好吧,假设我有 100 次调用 "form_input" 函数。这些调用包括文本 (70) 和上传 (30)。

我以前的上传很简单。现在我做了一点更改并添加:图像预览和文件名预览。但我不想改变所有地方(30),我可以而且很容易,但我现在不想。

不想更改"核心"文件,如果是这样的话,我更喜欢使用其他名称的函数。

form_input($p1, $p2, $p3){
   if($p1['type']=='file'){
      //do my lovely upload
   }else{
      //call built-in form_input (this is not a recursive call)
      form_input($p1, $p2, $p3);
   }
}

有多种方法可以做到这一点。

  1. 让它成为一个类。 使用自定义窗体函数创建一个新类,并在需要时对其进行实例化。虽然 CodeIgniter 中的帮助程序应该是无类的,但这将很好地工作并更好地组织您的代码。例如

    class CustomFormHelper {
       function form_input() {
           // your code 
       }
    }
    $form_helper = new CustomFormHelper();
    $form_helper->form_input();
    
  2. 更改函数名称。正如评论者所说,只需更改函数名称,它应该是一个快速修复。

  3. 制作多功能。这不是最干净的解决方案,但如果您想统一两者,这应该可以解决问题。

    function form_input_unified($fn, $args) {
        if ($fn == 1) {
            // execute original...
        } elseif ($fn == 2) {
            // do it new way.
        }
    }