私は現在 Windows で開発を行ってWampServer
おり、Propel を問題なくインストールしComposer
て (で) 作業しており、すべて正常に動作しているようです。ただし、私のプロジェクトでは、見つかった hereOpenSSL
を利用する必要があります。Equal Nest Behaviour
これにより、推進動作を使用できるようになると思いました。私schema.xml
には次のスニペットがあります:
<table name="friend">
<behavior name="equal_nest">
<parameter name="parent_table" value="user" />
</behavior>
</table>
しかし、実行するpropel-gen sql
とエラーが発生します:
[phingcall] Unknown behavior "equal_nest"; make sure you configured the propel.be
havior.equal_nest.class setting in your build.properties
ドキュメントには次のように記載されています。
次に、アプリケーションで Composer またはオートローダーを使用しない場合は、次の構成を build.properties または propel.ini ファイルに追加します。
build.properties ファイルに入れる必要がなかったと思い込ませます。ただし、それを入れると、次のエラーが発生します。
PHP Fatal error: Class 'EqualNestParentBehavior' not found in C:\home\movesleag
ue.com\vendor\craftyshadow\propel-equalnest-behavior\src\EqualNestBehavior.php o
n line 74
それがオートロードが機能していないことと名前空間に関係しているのかどうかはわかりませんでした(私のスキーマには名前空間がありますが、それを削除すると同じエラーが発生します)。
私のcomposer.json
ファイルは次のようになります。
{
"require": {
"craftyshadow/propel-equalnest-behavior": "dev-master"
}
}
注: 私はそこに Propel を持っていましたが、equalnest の動作には Propel 自体が必要なため、その仕事を任せています。
では、Composer で Propel ビヘイビアーを使用する正しい方法は何ですか? また、正しく使用している場合、上記のエラーが表示されるのはなぜですか?
アップデート
この行を の先頭に追加しましたEqualNestBehaviour.php
:
include __DIR__ . DIRECTORY_SEPARATOR . 'EqualNestParentBehavior.php';
また、SQL はエラーなく正しく生成されているようです。ただし、そのファイルを変更することは、私には賢明ではありません。オートローディングの問題でしょうか?それをテストするために私にできることは何か考えられますか?
Equal Nest Behaviour
私の実際のPropel
コードでの使用は、次のような関数を使用して正常に機能することを確認できますaddFriends()
-これは、上記の変更がまだ残っている場合です。
私のautoload_namespaces.php
ファイルには次のものがあります。
<?php
// autoload_namespaces.php generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
);