2017-11-28 24 views
1

처럼 내 ./app 폴더를 찾습니다 :Laravel 5.5 찾을 수없는 클래스

<? 

namespace App\Classes\Events; 

class EventX { 
    // ... 
} 

EventBase.php이 그 안에 난 그냥 인스턴스화하려고 외관을 나타냅니다

+-- app 
    +-- Classes 
     +-- Events 
      +-- EventBase.php 
      +-- EventX.php 

아무것도 비밀이 EventX 파일에있다 an EventX :

public function someMethod() { 
    new \App\Classes\Events\EventX; 
    // ... 
} 
Symfony\Component\Debug\Exception\FatalThrowableError (E_ERROR) 
Class 'App\Classes\Events\EventX' not found 

심지어 그 :

이미이 문제를 가지고
file_exists(__DIR__ . '\EventX.php'); // true 

외관을 만들려고 할 때 이전과 클래스 파일을 이동하여 해결이 선 후는 프레임 워크 클래스를 찾을 수 없습니다 말하는 예외를 발생 그의 현재 디렉토리에서 그리고 뒤로 이동 한 후에 (예, 나는 왜 그런 효과가 없었습니다.)

뭔가이 자동로드 프로세스의 문제라고 하더군요, 그래서 이러한 명령을 시도했다 (하지만 여전히 작동하지) :

php artisan cache:clear 

php artisan clear-compiled 

php artisan config:clear 

composer dump-autoload 

나는 문제를 조사하기 위해 무엇을 할 수 있습니까?

+1

하지만, 선도적 인'\\ '아마도 원인? 그러나 fyi 클래스는 네임 스페이스가없는 클래스를 직접 호출 할 수 있습니다. 동일한 네임 스페이스 내에 있기 때문입니다. – Chay22

+0

@ Chay22 나는 복잡한 구조가 없기 때문에 네임 스페이스 문제가 아니라는 것을 알고 또한 시도했다. 자동로드 문제 같아요. –

+0

글쎄, 힘들어. 공급 업체 디렉토리를 삭제하고 작곡가 재설치를 시도 했습니까? – Chay22

답변

0

당신은 "PSR-4"

"psr-4": { 
     "App\\": "app/", 
     "Classes\\": "app/classes/" 

다른 작곡가가 또 다른 방법은 여기에서 찾을 수 있습니다

새 네임 스페이스를 감지 할 수없는 키에 composer.json에 새 네임 스페이스를 추가해야 : https://stackoverflow.com/a/28360186/6111545

0

PHP 태그 <에 문제가 있다고 생각하십니까?

<?php 

namespace App\Classes\Events; 

class EventX { 
    // ... 
} 

PHP는 짧은 열린 태그 < 수 있습니다? (이것은 short_open_tag php.ini 구성 파일 지시어를 사용하여 활성화 된 경우 또는 PHP가 --enable-short-tags 옵션을 사용하여 구성된 경우에만 사용 가능하므로 권장하지 않습니다). 잘 모르겠어요

Link