昨日からSymfony 3を使っていますが、自動配線に苦労しています。
何らかの理由で、FileLoader はクラスが存在しているのにクラスを見つけることができません。
services.yml には次のものがあります。
services:
_defaults:
autowire: true
autoconfigure: true
public: true
RideShare\Infrastructure\:
resource: '../../src/RideShare/Infrastructure/*'
フォルダーには、次の内容src/RideShare/Infrastructure/EventStore/Doctrine
のファイルがあります。DoctrineEventStore.php
<?php
namespace RideShare\Infrastructure\EventStore\Doctrine;
use ...;
class DoctrineEventStore extends EntityRepository implements EventStore
しかし、実行しようとするphp bin/console
と、次の例外が発生します。
Symfony\Component\Config\Exception\FileLoaderLoadException:
Expected to find class "RideShare\Infrastructure\EventStore\Doctrine\DoctrineEventStore" in file "[....]src/RideShare/Infrastructure/EventStore/Doctrine/DoctrineEventStore.php" while importing services from resource
"../../src/RideShare/Infrastructure/*", but it was not found! Check the namespace prefix used with the resource in [...]/app/config/services.yml (which is being imported from "[...]/app/config/config.yml"). in [...]/vendor/symfony/symfony/src/Symfony/Component/Config/Loader/FileLoader.php on line 179
この宣言は正しいと思いますが、stackoverflow や Symfony のドキュメントではこのような質問は見られず、なぜ失敗したのかわかりません。
完全なコードはGithubにあります。