0

2年間問題なく、zend_framework/phpプロジェクトでpropelランタイムv1.5.4とそれに関連するpropel_generatorを使用しています。

昨日、pearを介してpropel_generatorをv1.6.5に更新し、ランタイムライブラリをv1.6.6に更新しました。新しいジェネレーターを使用した最初のビルドプロセスの後、生成されたクラスマップ-[プロジェクト]-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'

...

新しいジェネレーターは、「map」および「om」パスの前に先頭のスラッシュを追加します。そのため、推進オートローダーはクラスファイルを見つけることができません。

これを変更できるconfig-optionまたはgenerator-templateはありますか?

ありがとう。

4

1 に答える 1

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

于 2012-06-25T08:17:31.747 に答える