2017-06-02 16 views
1

私はこのエラーを取得する私はなぜphpspecでクラスが見つからないのですか?

vendor/bin/phpspec run

とphpsecを実行PHPSpecの3.4.0.Whenを使用します。

"autoload": { 
    "psr-4": { 
     "App\\": "app/" 
    }, 
    "psr-0": { 
     "EastSea\\": "src/" 
    } 
} 
:ここ

class Eastsea\Service\FileStorage\DuplicateFileStorage does not exist.

は、自動ロードセクションについての私のcomposer.jsonファイルです

ここに私のフォルダツリーがあります:

./src 
`-- EastSea 
    `-- Service 
     `-- FileStorage 
      |-- DuplicateFile.php 
      |-- DuplicateFileStorage.php 
      `-- Result.php 

クラス:

<?php 

namespace EastSea\Service\FileStorage; 

class DuplicateFileStorage 
{ 
    public function validate() 
    { 
     // TODO: write logic here 
    } 

    public function storage() 
    { 
     // TODO: write logic here 
    } 

    public function handle(DuplicateFile $file) 
    { 
     $file->hash(); 
    } 
} 

仕様:

"autoload": { 
    "psr-4": { 
     "App\\": "app/", 
     "": "src/" 
    } 
} 

と明らかにあなたのcomposer.jsonのアップデート後にcomposer dump-autoloadを実行します。

<?php 

namespace spec\Eastsea\Service\FileStorage; 

use \EastSea\Service\FileStorage\DuplicateFileStorage; 
use \EastSea\Service\FileStorage\Result; 
use PhpSpec\ObjectBehavior; 
use Prophecy\Argument; 

class DuplicateFileStorageSpec extends ObjectBehavior 
{ 
    function it_is_initializable() 
    { 
     $this->shouldHaveType(DuplicateFileStorage::class); 
    } 

} 
+0

使用開始時に「\」を削除します。必要ない。 FQCN(Fully Qualified Class Name)が必要です。 – sensorario

答えて

1

これを試してみてください。

+0

それは働いています。たくさんありがとうございます。なぜ私の設定がうまくいかないのですか?そのオブジェクトを作成するためにtest.phpを書きました。両方とも 'EastSea \\'と '' ''が働いていました。 – macc

関連する問題