从Zend加载/浸入CodeIgniter


Loading/dipping into CodeIgniter from Zend

我从我一直在工作的CI论坛和网站上了解到了CI。大体上我在CodeIgniter中有一个完整的工作系统,我运行的测试表明,同一服务器上的标准PHP文件可以访问我提供的类和库。

另一个遗留系统在Zend上运行,当包含CodeIgniter文件时抛出异常。我无法通过:

$BM =& load_class('Benchmark', 'core');

在dip文件中,Zend抛出了一个长错误。它抛出(以及许多其他信息):

exception 'Zend_Exception' with message 'At least one error occurred including "Benchmark.php"; see includeErrors property' 

我在互联网上能找到的几乎所有东西都能找到使用CodeIgniter库的方法,但这与我所寻找的正好相反。如果我注释掉Benchmark加载,那么它在Hooks上失败了,这让我相信Zend已经用自己的函数篡夺或重载了load_class()函数,并以这种方式造成了问题。

以前有人让他们工作过吗?

我不能直接回答这个问题,但我只是偶然发现了一个引用Exception的"includeErrors"属性的腐烂代码。

经过一番搜索,我也许可以为你所观察到的内容提供一些上下文。

ZF1的某些版本中存在行为,请参阅http://framework.zend.com/issues/browse/ZF-2463

  • 如果Zend_Loader包含一个文件
  • 并且仅仅包括它的行为就会导致一些PHP错误(如果例如某个继承的方法签名不匹配,或者如果找不到文件,则通常会是E_STRICT)
  • 然后它将抛出一个异常,并添加一个"includeErrors"属性