이름이 이미 사용 중이므로 interface를 선언 할 수 없습니다


12

새 모듈에서 간단한 인터페이스를 만든 후 bin / magento setup : di : compile을 입력했는데 이름이 이미 사용 중이라는 오류가 발생합니다.

내 코드는 다음과 같습니다.

namespace Company\Test\Api;

/*
 *  @api
 */
interface XyzInterface {
    public function getSomething();
}

그런 다음이 오류가 발생합니다.

Repositories code generation... 1/7 [====>-----------------------]  14% 2 secs 52.0 MiBPHP 
Fatal error:  Cannot declare interface Company\Test\Api\XyzInterface, because the name is already in use in .../app/code/Company/Test/Api/XyzInterface.php on line 13

줄은 "인터페이스 XyzInterface"입니다. 내가 뭘 잘못하고 있는지 잘 모르겠습니다.


1
스택 추적을보기 위해 -vvv 옵션과 함께 명령을 실행할 수 있습니까? 어떤 이유로 파일이 두 번 포함되었을 수 있습니다.
BuskaMuza

"PHP 치명적 오류"
Nelly

xdebug를 활성화 할 수도 있습니다. 백 트레이스를 표시하는 데 도움이 될 것이라고 생각합니다.
BuskaMuza

1
잘못 입력 된 "네임 스페이스"클래스로
인해이

답변:


36

오늘 같은 유형의 오류가 발생했습니다.

PHP 치명적 오류 : 100 행의 /var/www/m2/magento2/app/code/path/to/the/class.php에서 이름이 이미 사용 중이므로 Class \ Name \ Here 클래스를 선언 할 수 없습니다.

여기서 라인 100은 파일의 끝입니다.

대략 4 시간의 디버깅 후에 네임 스페이스 선언에 잘못 인쇄 된 이유가 있습니다. 마지막 순간까지 나는 그것이 이름 선언에서 인쇄상의 오류라고 믿지 않았지만 모든 이름을 새로 작성했을 때 실수는 사라졌습니다. 이 기사 는 매우 도움이되었습니다.

나는 잠시 동안 머리를 긁고, 무슨 일이 일어나고 있는지 궁금해하며, 이것이 사실임을 깨달을 것이다

Pulsetorm

즉, 네임 스페이스 이름을 잘못 입력했으며 초기 자동로드가 클래스 파일을로드 할 때 찾고있는 클래스를 정의하지 않은 다음 두 번째 오토 로더 (일반적으로 합성기)가 다시로드하고 다시 정의하려고합니다. 잘못된 수업.

즉, 마 젠토는 수업을 원했다

Pulsestorm\Helloworld\Observers\Block

그러나 나는 정의했다

Pulsetorm\Helloworld\Observers\Block

잘못된 네임 스페이스 덕분입니다.

감사합니다, Alan Storm :)

최신 정보:

이 오류의 또 다른 유형은이 예제에서와 같이 네임 스페이스의 일부가 누락 된 잘못된 네임 스페이스 선언입니다.

오류:

리포지토리 코드 생성 ... 1/7 [====> -----------------------] 14 % 1 초 50.0 MiBPHP 치명적인 오류 : 선언 할 수 없습니다 /var/www/vhosts/rwld/vendor/magento/data-migration-tool/tests/unit/testsuite/Migration/Step/UrlRewrite/Version11410to2000Test.php에서 이름이 이미 사용 중이므로 Migration \ Step \ Version11410to2000Test 클래스 109 행

여기서 라인 109는 파일의 끝입니다.

파일 에서이 네임 스페이스의 경로 가 이므로 네임 스페이스가 올바른 네임 vendor/magento/data-migration-tool/tests/unit/testsuite/Migration/Step/UrlRewrite/Version11410to2000Test.php스페이스 인 것처럼 네임 스페이스를 찾았습니다 . 네임 스페이스를 오류로 변경하면 사라집니다.Migration\StepMigration\Step\UrlRewriteMigration/Step/UrlRewriteMigration/Step/UrlRewrite


1
나는 같은 문제가 있었다, 이것은 미친 문제이다
Hamza Alayed

네임 스페이스 문제의 경우 +1 나는 2 시간을 낭비했다. 고마워요!
12

1
또한 이것에 추가하고 싶을 때 디렉토리 이름을 지정할주의 해야합니다 . 케이싱 일치 해야하므로 두 시간이 낭비되었을 수도 있습니다!
Smithee
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.