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

Posted

技术标签:

【中文标题】是否可以在不使用整个框架的情况下在 PHP 中为 ORM 安装 Kohana 库?【英文标题】:Is it possible to install Kohana libraries for ORM in PHP without using the entire framework? 【发布时间】:2008-10-21 22:32:43 【问题描述】:

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

更新:

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

【问题讨论】:

【参考方案1】:

为什么不只是一个

class ORM extends ORM_Core  

在您的代码中的某个地方?这消除了使用任何加载程序代码的需要。

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

Kohana 是一个很棒的 MVC 框架,但并不是真的被设计成像这样被分解成块。您可能还想调查Doctrine,另一个 PHP 的 ORM(设计为独立的)

【讨论】:

是的,这是正确的。只需挖掘代码即可找到我需要的内容。这稍微有点困难,因为所需的包含文件在顶部不是“必需的”,但是当我获得免费代码时没有任何抱怨。【参考方案2】:

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

-->

所以它做了一个评估..

【讨论】:

【参考方案3】:

Zak,检查可维护框架的 ORM。 http://framework.maintainable.com/mvc/3_model.php#c3.7 仔细阅读,相信你会喜欢的。我将其更详细地发布在: What is the easiest to use ORM framework for PHP?

【讨论】:

【参考方案4】:

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

这就是你所需要的!

【讨论】:

以上是关于是否可以在不使用整个框架的情况下在 PHP 中为 ORM 安装 Kohana 库?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在不使用 CoreLocation 的情况下在 IOS 中获取位置?我们可以使用网络提供商获取它吗?

我们可以在不使用任何框架的情况下在css中给出if else条件吗?

如何在不引用外部 CSS 文件的情况下在 WordPress PHP 文件中创建内联 CSS?

是否可以在不使用情节提要的情况下在 xib 文件中创建原型内容 UITableview?

是否可以在不使用类变量的情况下在运行时在实例上创建 pyqtSignals?

是否可以在不唤醒手机的情况下在后台使用 iphone 注册和收集匹配的 UUID?