【问题标题】:Laravel 5: add custom library in sub folder of "Libraries" folderLaravel 5:在“库”文件夹的子文件夹中添加自定义库
【发布时间】:2018-03-16 21:04:50
【问题描述】:

我需要将自定义库添加到 Laravel 5,但我想添加到“库”文件夹的子文件夹中。
我的意思是,我在“app”文件夹中有“Libraries”文件夹,我想在“Libraries”文件夹中添加另一个文件夹并在其中放置一个类。

我所做的是:

  • 在“app”文件夹中创建了“Libraries”文件夹;
  • 在“Libraries”文件夹中创建了“FusionChartsWrapper”文件夹;
  • 在“FusionChartsWrapper”文件夹中创建了“FusionCharts.php”文件。

FusionCharts 类具有正确的命名空间:

namespace App\Libraries\FusionChartsWrapper;

但我不能使用它,因为我得到这个 Laravel 错误:

Class 'App\Libraries\FusionChartsWrapper\FusionCharts' not found

如果我将类移动到“库”文件夹中,它会起作用。
有什么想法吗?

【问题讨论】:

  • 您是否尝试运行 composer dump-autoload?
  • 是的,它不起作用。
  • 仔细检查 FusionCharts.php 文件中类的名称和使用语句。 ^^
  • 没有成功。事实上,如果我将类移动到“库”文件夹中,它就可以工作。
  • 如果它在错误的目录中工作,那么类名或命名空间肯定有问题。您可以仔细检查 vendor/composer/ 中的自动加载文件,但使用 psr-4 它应该会在正确的位置找到类。

标签: php laravel-5 libraries


【解决方案1】:

最好的方法是将整个文件夹添加到composer.json文件中自动加载

"autoload": {
    "classmap": [
        "database/seeds",
        "database/factories",
        "app/Libraries" // =>folder you want to add
    ],
    "psr-4": {
        "App\\": "app/"
    },
},

然后运行composer dump-autoload

现在库文件夹中的每个文件都可以在任何地方访问 并且不需要使用

namespace App\Libraries\FusionChartsWrapper;

在你想直接使用的函数前加\

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-07
    • 2017-03-25
    • 2019-07-20
    • 2021-10-10
    • 2019-12-03
    • 2015-05-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多