Propel_Generator - 包含classmap-file中的路径不正确

时间:2012-06-22 07:30:44

标签: propel

我在zend_framework / php项目中使用了propel运行时v1.5.4及其相关的propel_generator,因为两年没有任何问题。

昨天我已经通过pear将propel_generator更新为v1.6.5,将运行时库更新为v1.6.6。在使用新生成器的第一个build-proccess之后,生成的classmap- [project] -conf.php文件出现了问题:

旧发电机(v1.5.4)

...

      'AutocompleteQuery' => 'AutocompleteQuery.php',
      'AutocompleteTableMap' => 'map/AutocompleteTableMap.php',
      'BaseAclAssertion' => 'om/BaseAclAssertion.php'

...

新生成器(v1.6.5)

...

      'AutocompleteQuery' => 'AutocompleteQuery.php',
      'AutocompleteTableMap' => '/map/AutocompleteTableMap.php',
      'BaseAclAssertion' => '/om/BaseAclAssertion.php'

...

新生成器在“地图”之前添加了一个前导斜杠。和' om'路径。因此,推进式自动装载机无法找到类文件。

是否有任何配置选项或生成器模板可以更改此内容?

感谢。

1 个答案:

答案 0 :(得分:3)

您的配置中似乎targetPackage构建属性为空。默认情况下,Propel使用项目名称作为目标包,因此您始终在类之前有一个目录:

  // ...
  'AutocompleteQuery'    => 'project/AutocompleteQuery.php',
  'AutocompleteTableMap' => 'project/map/AutocompleteTableMap.php',
  'BaseAclAssertion'     => 'project/om/BaseAclAssertion.php'

我修复了Propel以消除此限制,这样它将生成一个有效的包路径。我在这里讨论的是包,因为包用于确定文件的写入位置。

了解Propel中的软件包的文档: http://www.propelorm.org/cookbook/multi-component-data-model.html#understanding_packages

通过提交修复: https://github.com/propelorm/Propel/commit/b03569a802471b86e6e52287974de17f836c9baa