0

我有一个或多或少显示表格的 CI 应用程序。在这些页面上,我使用 PHPExcel 来导出结果。现在,控制器中的逻辑如下所示:

if( $this->input->get('export') == 1 ) {

    // Get Data
    // Load up library stuff
    // Prompt for download

    die();

}

$this->load->view('index');

它有点复杂,您可以选择 CSV/XLS 等,但简而言之就是这样。由于此代码将重复,我想将其作为其他地方的方法,该方法采用一系列设置,例如文件名和类型。它似乎不仅仅是一个帮手。

这是我第一次使用私有控制器方法吗?如果是这样,那会是什么样子?

4

1 回答 1

1

如果您需要在多个地方使用此功能,那么您正在寻找一个 Helper。但是,如果可以将功能分解为多种方法,那么您可能正在寻找库。

在我看来,Helper 文件是一组相关的函数,可以从应用程序的任何位置调用。但是,这些函数有点自治——这意味着它们可以彼此分开调用。因此,“日期”助手将是一个很好的例子。您将有单独的函数来以不同的方式格式化日期。真的不需要构造函数,设置,拆除等。

另一方面,库比助手更封装。您可能需要运行构造函数并根据您可能传递给构造函数的任何变量调用不同的方法。

库是面向对象的,因此它似乎符合您的需求。

私有控制器方法实际上就像辅助函数一样,但不需要从任何地方调用——它们只适用于同一控制器中的控制器方法。

我会创建一个库并使用它。

于 2013-01-29T22:46:13.497 回答