基于Codeigniter控制器

时间:2013-10-10 11:48:31

标签: codeigniter codeigniter-2

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

3 个答案:

答案 0 :(得分:2)

  1. 对于控制器的all functions使用的常见库和帮助程序,请尝试在constructorautoload中加载它。除了特定的库,例如payment gateway在函数内部加载。
  2. 您的使用方式或使用的控制器数量取决于您的需求。但我建议你为不同的功能构建单独的控制器。与管理员功能admin类似,用户相关功能users,等等。它也构建了一个用户友好的URL。

答案 1 :(得分:1)

加载需要时间和性能。人类标准没有明显的时间,但时间无关紧要。为了在将来削减服务器的一些空间,你只需加载每个页面/控制器方法所需的任何内容,这样做是有利的。

使用(几乎)总是

您可以将application/config/autoload.php用于您几乎总是使用的内容。我通常在这里包含帮助url

(几乎)始终在特定控制器

内使用

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

在特定页面内使用

将其加载到方法/功能中。

在特定功能

中使用

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

答案 2 :(得分:1)

嘛!一切都取决于你的要求。

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

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

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

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

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

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

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