Loader.php尝试加载Doctrine类,但我们使用Propel!

时间:2009-11-19 16:32:24

标签: php symfony1 propel

我们发现我们收到以下500错误的情况:

File xyz.php does not exist or class "xyz" was not found in the file at () in SF_ROOT_DIR/lib/vendor/Zend/Loader.php line 107 ...

其中xyz ==

Memcache(尝试在命令行上使用symfony cc时)

sfDoctrineAdminGenerator(使用旧的AdminGenerator生成的CMS页面时)。

我们使用Propel,但是Loader.php正在尝试加载仅用于Doctrine的类。

目前我正在使用一个肮脏的黑客,我请求Loader.php检查文件是否是这两种情况中的任何一种,如果是这样,只需返回而不是尝试加载它。显然,这在长期内是不可接受的。

有没有人遇到过这个,你是怎么解决的?

编辑添加:

我们有:

class ProjectConfiguration extends sfProjectConfiguration
{
  public function setup()
  {
    // for compatibility / remove and enable only the plugins you want
    $this->enableAllPluginsExcept(array('sfDoctrinePlugin'));
  }
}

我们在顶级配置目录中有一个propel.ini文件。这只是在过去四周左右开始的,而且我们已经有一年以上的稳定版本了。我很确定Doctrine是完全禁用的。

3 个答案:

答案 0 :(得分:0)

我唯一能想到的是确保在项目配置中禁用Doctrine ...

答案 1 :(得分:0)

这可能是Symfony的自动加载器和Zend之间的冲突吗?尝试将以下内容添加到ProjectConfiguration.class.php:

set_include_path(sfConfig::get('sf_lib_dir') . '/vendor' . PATH_SEPARATOR . get_include_path());
require_once sfConfig::get('sf_lib_dir').'/vendor/Zend/Loader/Autoloader.php';
$loader = Zend_Loader_Autoloader::getInstance();

我使用上面的Zend Lucene并且它有效。如果这没有帮助,这些Zend and Symfony slides中的某些内容可能有所帮助。

答案 2 :(得分:0)

清除缓存:)并确保您的index.php具有正确的包含文件。