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

Model view controller 如何访问Kohana中自定义类的静态方法?,model-view-controller,kohana,Model View Controller,Kohana,我有一个带有静态方法getById和getByUsername的用户类 我的类位于应用程序/库文件夹中 如何从控制器调用这些类 理论1: $this->user = new User(); $this->user::getById; 理论2: $user = new User(); $user::getById; 或者有没有一种干净的方法,就像Kohana助手那样;很像: text::random(); 以下是我想说的: 我想从我的控制器调用用户库中的静态方法 在PHP中,通

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

我的类位于应用程序/库文件夹中

如何从控制器调用这些类

理论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')

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


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

令人困惑的是Kohana用小写名称编写“helper”类的约定

如果您将用户php文件用作模型,则很可能可以加载它,因此您可以使用zombat的
user::getById()

我不喜欢遵循他们对助手或库的命名惯例,而是:

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

那么,如何在构造函数中创建用户类的实例呢?我当然不能使用$User=newuser,对吗?不,你不能在用户对象的构造函数中创建一个新用户,否则你将有一个用户对象创建的无限循环。您可以使用
$user=new user()
在任何其他构造函数中创建它。你想完成什么?
User::getByUserName();
require_once(Kohana::find_file('libraries', 'user_utils', TRUE, 'php'));