外部php类中的错误包含在Laravel 5.3中?

时间:2016-12-26 16:49:36

标签: php csv laravel-5.3

我有一个名为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

所以我评论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文件中工作。但不是在Laravel。我使用的是5.3版。并遵循如何在laravel中导入外部文件的规则。但不明白为什么错误即将来临。请帮帮我。

我正在使用CSV库来读取csv文件。图书馆是here

1 个答案:

答案 0 :(得分:0)

使用没有名称空间和不同文件名的类的最佳方法是使用composer autoloading。

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;