在Codeigniter中放置导出代码的位置?

时间:2013-01-29 21:39:49

标签: php codeigniter

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

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

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

    die();

}

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

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

这是我第一次使用私人控制器方法进行磨合吗?如果是这样,那会是什么样的?

1 个答案:

答案 0 :(得分:1)

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

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

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

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

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

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