0

我有一个带有静态方法 getById 和 getByUsername 的用户类

我在 application/libraries 文件夹中有课程

如何从控制器调用类?

理论1:

$this->user = new User();
$this->user::getById;

理论2:

$user = new User();
$user::getById;

还是有一种干净的方式来做这件事,就像 Kohana 助手的做法一样;很像:

text::random();

这就是我想要完成的:

我想从我的控制器调用用户库中的静态方法

在 PHP 中,您通常包含文件 (User.php),并且静态方法已准备就绪

用户:getById

但是我将如何在 MVC 框架中做同样的事情呢?

我也应该做一个包含吗?

像包含('User.php');?

4

2 回答 2

1
User::getById();

User::getByUserName();

编辑:为了响应您的问题编辑,通常框架具有自动加载机制,一旦您引用该类,它将为您查找并加载类文件。因此,当您键入 时User::getById(),PHP 解释器将看到它需要加载 User 类(如果尚未加载),并运行自动加载过程以找到要包含的正确代码。

我从未使用过 Kohana,但如果它不使用某种形式的自动加载,我会感到非常惊讶。如果没有,那么是的,一个简单include('User.php')的方法就足以使静态方法调用User起作用。

于 2009-08-10T08:15:39.107 回答
0

令人困惑的是 Kohana 使用小写名称编写“帮助”类的惯例。

如果您将其用作模型,您的用户 php 文件可能已全部加载,因此您可以使用 zombat 的User::getById();.

我不喜欢遵循他们对助手或库的命名约定,而是这样做:

require_once(Kohana::find_file('libraries', 'user_utils', TRUE, 'php'));
于 2009-08-12T00:13:46.120 回答