首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以在不使用整个框架的情况下在PHP中为ORM安装Kohana库?

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

Stack Overflow用户
提问于 2008-10-21 22:32:44
回答 4查看 1.4K关注 0票数 1

在上一个问题中,我询问了各种ORM库。事实证明,就ORM而言,Kohana看起来非常干净,但功能强大。不过,我已经有了一个正在使用的MVC框架。如果我不想把它作为一个框架运行,那么应该包括什么文件集才能给我提供DB和ORM基类文件呢?

更新:

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2008-10-22 06:28:19

为什么不干脆用一个

代码语言:javascript
复制
class ORM extends ORM_Core {} 

在你的代码中的某个地方?这样就不需要使用任何加载器代码了。

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

Kohana是一个很棒的MVC框架,但并不是真的被设计成像这样的块。您可能还想研究Doctrine,另一种用于PHP (被设计为独立的)

票数 5
EN

Stack Overflow用户

发布于 2008-10-22 02:58:07

事实证明,Kohana使用了神奇的类加载,因此如果定义的带有_Core扩展的类不作为类存在

也就是说,ORM_Core存在,但ORM不存在,因此Kohana将神奇地定义一个ORM类,因为该包使用100%的魔术类加载。

如果有人感兴趣,我在这里记录我的发现,以便每个人以后都能找到它:

代码语言:javascript
复制
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);

-->

所以它做了一个评估..

票数 3
EN

Stack Overflow用户

发布于 2008-11-25 00:25:33

Zak,检查可维护框架的ORM。http://framework.maintainable.com/mvc/3_model.php#c3.7读得很透彻,我相信你会喜欢的。我在What is the easiest to use ORM framework for PHP?中详细介绍了这一点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/223788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档