2016-12-26 1 views
0

나는 CsvClass.php이라는 PHP 라이브러리 클래스 파일을 가지고있다. 나는이 파일을 app/Libraries/CsvClass.php 위치에 둔다. 나는 이런 종류의 문제가 해결책을 가지고있는 Some URL을 보았다. 그래서 지시에 따라 컨트롤러에 namespace App\Libraries;use App\Libraries\CsvClass;을 추가했습니다. 하지만이 때문에 컨트롤러를로드 할 때이 오류가 발생했습니다. FatalErrorException in ImportController.php line 17:Class 'App\Libraries\Controller' not found. Laravel 5.3에 외부 PHP 클래스에 오류가 있습니까?

그래서 app/Libraries/CsvClass.php을 언급 그래서 컨트롤러가로드 실행합니다. 나는 클래스를 사용하려고의 오류가 있으면 컨트롤러의 상단 부분에서 지금, 나는이 클래스를 사용하려고 시도

FatalErrorException in ImportController.php line 120: Class 'App\Http\Controllers\parseCSV' not found 

,이 같은

namespace App\Http\Controllers; 
//namespace App\Libraries; 

use App\Libraries\CsvClass; 
use Illuminate\Http\Request; 
use App\Http\Requests; 
use Illuminate\Http\RedirectResponse; 
use Clusterpoint\Client; 
use DateTime; 
use Session; 
use Excel; 

보일 뿐이다

$csv = new parseCSV(); 
$csv->auto($path); 
$full_data=$csv->data; 

여기 $path은 csv 파일의 경로가 포함되어 있습니다. 이 함수는 별도의 PHP 파일에서 작동합니다. 그러나 Laravel에는 없습니다. 버전 5.3을 사용하고 있습니다. 그리고 laravel에서 외부 파일을 가져 오는 방법에 대한 규칙을 따르십시오. 그러나 왜 오류가 오는지 이해하지 못합니다. 도와주세요.

나는 csv 파일을 읽어 CSV 라이브러리를 사용하고 있습니다. 도서관은 here입니다.

+0

당신은 당신의 파일'CsvClass.php'을 보여줄 수 있습니까? –

+0

https://github.com/parsecsv/parsecsv-for-php 링크에서 파일을 다운로드 할 수 있습니다. 이미 문제의 링크를 제공합니다. – Avishake

+0

use 문에서 App \ Libraries \ CsvClass에 CsvClass.php에 대한 네임 스페이스가 설정되어 있는지 확인하십시오. –

답변

0

네임 스페이스와 다른 파일 이름없이 클래스를 사용하는 가장 좋은 방법은 작곡가의 자동 로딩을 사용하는 것입니다.

1) classmap에 클래스를 등록합니다.

"autoload": { 
     "classmap": [ 
      "database", 
      "app/Libraries/CsvClass.php" 
     ], 
     "psr-4": { 
      "App\\": "app/" 
     } 
    }, 

2) composer dump-autoload

는 이제 전체 경로를 제공하지 않고 어디서든 클래스에 액세스 할 수 있습니다 실행합니다.

$csv = new parseCSV(); 
$csv->auto($path); 
$full_data=$csv->data; 
+0

가 작동하지를 찾을 수 없습니다. 같은 오류가오고 ... – Avishake

+0

당신 작곡가 덤프 - 자동로드는 경고 또는 오류 메시지없이 실행 있는지? 나는 게시하기 전에 저 자신을 시도했기 때문에 그것은 나를 위해 일했습니다. –

+0

없음 오류가 없다. – Avishake

관련 문제