是否可以在不使用整个框架的情况下在PHP中安装用于ORM的Kohana库



在前面的一个问题中,我询问了各种ORM库。事实证明,对于ORM来说,Kohana看起来非常干净,但功能性很强。不过,我已经有了一个MVC框架。如果我不想把它作为一个框架来运行,那么应该包含什么样的文件集来提供DB和ORM基类文件?

更新:

我跳进去开始查看ORM源代码。。有一件事让我很困惑。所有ORM类的类名都附加了_CORE,即ORM_CORE ORM_Iterator_CORE,但到处的代码都在扩展ORM类。问题是,我以6种不同的方式搜索了整个代码库,但我从未见过普通的ORM类定义或ORM接口定义或任何东西。。有人能告诉我魔法发生在哪里吗?

为什么不只是有一个

class ORM extends ORM_Core {} 

代码中的某个位置?这样就不需要使用任何加载程序代码。

您还需要Kohana_Exception、数据库库(和相应的驱动程序)、Kohana::config()、Kohina::auto_load()和Kohana::log()方法(在Database.php中搜索这些方法)。

Kohana是一个很棒的MVC框架,但并不是真正设计成可以像那样被分割成块。您可能还想研究Doctrine,另一个针对PHP的ORM(IS设计为独立的)

事实证明,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);
-->

所以它做了一个评估。。

Zak,检查可维护框架的ORM。http://framework.maintainable.com/mvc/3_model.php#c3.7仔细阅读,我相信你会喜欢的。我在以下网站上发布了更多详细信息:PHP最容易使用的ORM框架是什么?

http://obando.com.ve/2009/04/29/modelado-orm-rapido-y-facil/

这就是你的全部需要!!

最新更新