2

最近、Emacs を使用して Symfony 2 での開発を開始しました。

Emacs のインターロック ファイルが Symfony 2 のオートローダー機能を妨害している 2 つの場所に遭遇しました。

最初の例では、コントローラーを操作するときに、Emacs はインターロック シンボリック リンク ファイルを作成します。

.#DefaultController.php -> user@local.1234

すぐ隣に

DefaultController.php

Web ブラウザーでプロジェクトを読み込もうとすると、次のエラーが表示されます。

SplFileInfo::getMTim​​e(): /home/user/project/src/DefaultBundle/Controller/.#DefaultController.php の統計に失敗しました

手動で削除するとエラーが消えます.#DefaultController.php

明らかに、Symfony 2 はファイルを stat しようとして失敗しています。これは行き止まりのシンボリック リンクであるためです。

2 番目の例では、エンティティを操作するときに、Emacs はインターロック シンボリック リンク ファイルを作成します。

.#Product.php -> user@local.1234

すぐ隣に

Product.php

走ろうとすると

app/console doctrine:schema:update

app/console doctrine:schema:update を実行すると、次のエラーが表示されます。

致命的なエラー: Doctrine\Common\Persistence\Mapping\Driver\AnnotationDriver::getAllClassNames(): 必要な '' (include_path='.:/usr/share/php:/usr/share/pear') を /home/ で開けませんでしたuser/project/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/Driver/AnnotationDriver.php 行 194

.#Product.php ファイルを手動で削除すると、エラーはなくなります。

他の誰かがそのような問題に遭遇しましたか?

どうすれば修正できますか?

4

1 に答える 1

2

これは注釈リーダーに関する問題です。解決できないシンボリック リンクが検出された場合でも、それほど失敗することはありません。

失敗する理由を確認してください: https://github.com/doctrine/common/blob/master/lib/Doctrine/Common/Persistence/Mapping/Driver/AnnotationDriver.php#L194

これについては、適切なメーリング リストで Doctrine の開発者と話し合う必要があります。

于 2012-11-07T22:58:25.120 に答える