【问题标题】:Integrating RedBean ORM into Zend Framework [closed]将 RedBean ORM 集成到 Zend Framework [关闭]
【发布时间】:2012-05-30 20:06:25
【问题描述】:

RedBean suggests a method for integrating the ORM into Zend Framework的手册。

来自手册:-

打开 Zend 引导文件并添加:

   public function run() {
         $loader = Zend_Loader_Autoloader::getInstance()->registerNamespace("RedBean_");
         require_once( APPLICATION_PATH . "/../library/RedBean/redbean.inc.php"); //or rb.php
         R::setup( "mysql:host=localhost;dbname=timereg", "root" );
         Zend_Registry::set("tools", R::$toolbox);
         Zend_Registry::set("db", R::$adapter);
         Zend_Registry::set("redbean", R::$redbean);
         parent::run();
   }

这种方法在我看来并不是最有效的,因为在每个控制器中都设置了 ORM,无论是否需要。它也在使用我不喜欢的 Zend_Registry。

RedBean 的某些功能也需要正确集成,并且可以通过 application.ini 配置受益:-

如何以更高效 Zend 的方式将 RedBean ORM 集成到 Zend 框架中?

【问题讨论】:

  • readbean 不是已经延迟加载了吗?如果是,这应该已经很有效了。

标签: php zend-framework redbean


【解决方案1】:

根据 redbean.inc.php 的功能,我认为您无法将其效率提高太多。在文件中请求和设置数据库连接的开销可能不会很大。

我会将建议的代码稍微更改为:

protected function _initRedBean()
{
    $loader = Zend_Loader_Autoloader::getInstance()->registerNamespace("RedBean_");
    require_once APPLICATION_PATH . "/../library/RedBean/redbean.inc.php"; //or rb.php
    R::setup( "mysql:host=localhost;dbname=timereg", "root" );
    Zend_Registry::set("tools", R::$toolbox);
    Zend_Registry::set("db", R::$adapter);
    Zend_Registry::set("redbean", R::$redbean);
}

利用引导程序的内置资源加载,而不是覆盖 run() 方法(不好的做法)。

如果您还使用 Zend_Db,可以简单地传入现有的 PDO 连接,以避免创建第二个连接,但这需要在代码中进行一些挖掘。

【讨论】:

  • +1 这对我有用,谢谢!
猜你喜欢
  • 2014-04-11
  • 2011-12-07
  • 2011-02-14
  • 2012-04-03
  • 1970-01-01
  • 1970-01-01
  • 2012-05-29
  • 1970-01-01
  • 2011-12-13
相关资源
最近更新 更多