2016-12-26 10 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外部PHPクラスのエラーはLaravel 5.3に含まれていますか?

私はapp/Libraries/CsvClass.phpとコメントし、コントローラがロードされるように実行します。コントローラの頂上部には、今、私はこのクラスを使用しようと試みる、次のようになり

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; 

しかし、私はクラスを使用しようとの誤差がある場合に、

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

あり、

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

$pathは、CSVファイルのパスが含まれています。この関数は別のPHPファイルで動作しています。しかし、ララヴェルではない。私はバージョン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)クラスをクラスマップに登録します。

"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

作者dump-autoloadは警告やエラーメッセージなしで実行されましたか?投稿する前に自分で試したので、それは私のために働いた。 –

+0

いいえエラーはありません。 – Avishake

関連する問題