如何在Kohana中访问自定义类的静态方法?

时间:2009-08-10 08:08:42

标签: model-view-controller kohana

我有一个带有静态方法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框架中做同样的事情呢?

我也应该做一个包含吗?

喜欢include('User.php');?

2 个答案:

答案 0 :(得分:1)

User::getById();

User::getByUserName();

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

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

答案 1 :(得分:0)

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

如果您将用户的php文件用作模型,那么您的用户php文件可能已经准备好了,因此您可以使用zombat建议的User::getById();

我不喜欢跟随他们的帮助者或图书馆的命名召集,而是:

require_once(Kohana::find_file('libraries', 'user_utils', TRUE, 'php'));