Kohana框架。 Kohana类问题

时间:2010-12-27 15:24:17

标签: kohana php

我正在研究Kohana框架并试图通过代码来更好地理解框架是如何工作的。

所以 - 从index.php我们加载:

require SYSPATH.'base'.EXT;
require SYSPATH.'classes/kohana/core'.EXT;
require APPPATH.'bootstrap'.EXT;

在core.php文件中,我们执行以下操作:

public static $environment = Kohana::DEVELOPMENT;

通过致电Kohana :: DEVELOPMENT,我们可以参考什么? 根据我的理解 - 通过使用::我们应该从kohana类获得静态常量。 - 对?但是在代码的那一刻,我找不到加载的Kohana类。 所以 - 有人可以解释这里发生了什么:)? 感谢

解决:

没关系。我没有足够地遵循代码。 Kohana类扩展了Kohana_Core类。嗯。太糟糕了,无法从StackOverflow中删除愚蠢的问题。

2 个答案:

答案 0 :(得分:2)

Kohana(可能是任何其他框架)使用“自动加载”机制。这允许您使用类而不包括手动定义的文件。自动装带器将自动包含/要求Kohana类所在的文件。

因此,当您键入Kohana::DEVELOPMENTnew Kohana ();时,自动加载程序将加载包含Kohana类的文件。你应该知道这不会神奇地起作用。您必须为您的框架编写自己的自动加载程序代码。

您可以阅读有关自动加载here的更多信息。

答案 1 :(得分:0)

有关详细信息,请查看以下链接:spl_autoload register。 Kohana使用自己的实现,可以在bootstrap.php文件中设置。您可以在Core.php文件中找到此功能。

/**
 * Enable the Kohana auto-loader.
 *
 * @link http://kohanaframework.org/guide/using.autoloading
 * @link http://www.php.net/manual/function.spl-autoload-register
 */
spl_autoload_register(array('Kohana', 'auto_load'));