用于Propel 1.5.6的Autoloader似乎无法完全正常工作

我在我的Mac上安装了Propel 1.5.6,通过MacPorts运行PHP 5.12.14。我已经创建了一个模式,生成了一个模型,运行了sql生成和插入任务,现在我正在转向运行时的东西。 我有以下代码可以正常工作(它创建一行然后计算行数):
<?php

// Set up some paths & schema info
$projectPath = realpath( dirname( __FILE__ ) . DIRECTORY_SEPARATOR . '..' );
$schemaName = 'database';
$modelPath = $projectPath . "/${schemaName}/build/classes";

// Init propel
require_once $projectPath . '/lib/propel-1.5/runtime/lib/Propel.php';
Propel::init($projectPath . "/${schemaName}/build/conf/${schemaName}-conf.php");

// Add the generated 'classes' directory to the include path
set_include_path($modelPath . PATH_SEPARATOR . get_include_path());

// This seems to be sufficient to get the autoloader working ***
require_once $modelPath . '/database/NodePeer.php';

$node = new Node();
$node->setName('My Node');
$node->setHash(sha1($node->getName()));
$node->save();

$nodes = NodePeer::doSelect(new Criteria());
echo 'Node count: ' . count($nodes) . "n";
?>
但是,如果我删除带有星号评论的行,我希望它仍然可以工作 - 我认为自动加载器应该启动并为我加载所有必需的模型类。但是,我明白了:   致命错误:未定义的类常量   'NAME'in   (项目)/database/build/classes/database/om/BaseNode.php   在211线 我已经攻击了自动加载器以回显它加载的类,并发现它确实加载了一些类:   自动加载:节点      自动加载:BaseNode 但是,当它加载BaseNode时,它会在对Peer类的静态引用上挣扎。我发现如果手动需要BaseNode就是这种情况。 PHP是否在我的配置上挣扎以自动加载静态调用的方法/常量? 或者Propel自动加载器加载的顺序可能有问题吗? 提前致谢。暂时,我会像往常一样继续 - 包括同伴在内并不是一个大问题 - 但我想知道如果没有它我是否可以逃脱。少想一想!     
已邀请:
自动加载器在这种情况下不起作用,因为我的模型生成了一个与Propel核心提供的接口发生冲突的类。重命名这将是有效的,就像使用命名空间系统一样(当然后者依赖于使用PHP 5.3。+)。     

要回复问题请先登录注册