是否可以在不使用整个框架的情况下在 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?