私はこのエラーを取得する私はなぜ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);
}
}
使用開始時に「\」を削除します。必要ない。 FQCN(Fully Qualified Class Name)が必要です。 – sensorario