0

我是codeigniter框架的新手。我有一些问题。当我们编写一些控制器类时,我们调用构造函数。我正在加载一些库和一些帮助程序。我想知道在构造类下加载这个帮助程序和库的完美方法是什么或在其他功能下。如果我在构造类中加载所有内容,那么它有什么缺点?如果我为一个项目使用更多控制器类,那么它是好是坏。就像我想使用一些控制器类来实现 ajax 功能,一些用于表单提交,一些用于其他部门。我的英语不太好。请帮助我。

4

3 回答 3

2
  1. 对于您的控制器使用的常用库和助手all functions,请尝试将其加载到constructorautoload. 除了特定的库,例如payment gateway在函数内部加载。
  2. 您如何使用或使用多少个控制器取决于您的需求。但我建议您为单独的功能构建单独的控制器。比如admin管理功能、users用户相关功能等等。它也建立了一个用户友好的 URL。
于 2013-10-10T11:57:44.190 回答
1

加载需要时间和性能。以人类的标准来看不是明显的时间,但无论如何都是时间。为了在将来减少服务器的一些松弛,您只需加载每个页面/控制器方法所需的任何内容即可。

(几乎)一直使用

您可以application/config/autoload.php用于几乎总是使用的东西。我通常在这里包括助手url

(几乎)总是在特定控制器内使用

将其加载到控制器__construct中。不要忘记包括parent::__construct();.

在特定页面内使用

将其加载到方法/函数中。

在特定函数内部使用

在函数的开头或内部if-statement 加载它。您可以多次加载它,它只会第一次执行。

于 2013-10-10T12:17:33.817 回答
1

出色地!一切都取决于您的要求。

如果您需要全局的任何库、模型或助手,您可以自动加载它 autoload.php。
这意味着加载将在每个请求上完成。

如果您在整个控制器方法中需要任何库、模型或助手,您可以在构造函数中加载它们。
这意味着将在控制器的每个方法上完成加载。

如果您需要特定方法的任何库、模型或助手,您可以在方法中加载它们。
这意味着加载将仅在方法中完成。

例如,假设您在整个应用程序中都需要会话和数据库库,以便您可以自动加载它。

对于特定的控制器,您需要特权库,因此将其加载到构造函数中。

对于电子邮件,您需要在函数中发送加载电子邮件库。

这些只是示例。您可以探索 SO 以找到更多信息。

于 2013-10-12T07:44:57.620 回答