我有一个带有静态方法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');?
答案 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'));