事实证明,Kohana 使用了魔术类加载,因此,如果具有 _Core 扩展的已定义类不作为类存在
即 ORM_Core 存在,但 ORM 不存在,因此 Kohana 将神奇地定义一个 ORM 类,因为该包使用 100% 魔术类加载。
万一有人感兴趣,我在这里记录我的发现,以便每个人以后都可以找到它:
From Kohana.php in the system directory:
<-- snip if ($extension = self::find_file($type, self::$configuration['core']['extension_prefix'].$class))
{
// Load the extension
require $extension;
}
elseif ($suffix !== 'Core' AND class_exists($class.'_Core', FALSE))
{
// Class extension to be evaluated
$extension = 'class '.$class.' extends '.$class.'_Core { }';
-->
<-- snip
// Transparent class extensions are handled using eval. This is
// a disgusting hack, but it gets the job done.
eval($extension);
-->
所以它做了一个评估..