【问题标题】:Lumen - how to import external libraries properlyLumen - 如何正确导入外部库
【发布时间】:2017-06-02 02:55:07
【问题描述】:

我正在尝试将 PHPExcel 库导入到我的 Lumen 项目中,我正在按照本教程进行操作:

http://laraveldaily.com/how-to-use-external-classes-and-php-files-in-laravel-controller/

我所做的是:

  1. 将 PHPexcel/Classes 文件夹的内容复制到 App/Libraries 文件夹中(这样 App/Libraries 中的 PHPExcel.php 文件和 PHPExcel 子文件夹)。
  2. PHPExcel.php文件开头添加namespace App\Libraries;
  3. 在我的控制器文件中添加了use App\Libraries\PHPExcel;
  4. 在控制器中调用PHPExcel_IOFactory::createReaderForFile($fileName);

但我收到一个错误:

致命错误:找不到类“App\Http\Controllers\PHPExcel_IOFactory”

我做错了什么以及如何正确导入库?

【问题讨论】:

    标签: import dependencies libraries require lumen


    【解决方案1】:

    您似乎需要将 App\Libraries 添加到您的班级地图中。在 composer.json 中更新自动加载类映射以包含该目录。

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

    然后运行composer dump-autoload

    希望对您有所帮助。

    【讨论】:

    • 很遗憾没有。我也将它添加到 autoloadautoload-dev,然后添加到 composer dump-autoload,但没有任何改变 - 仍然是同样的错误。
    • 我的班级也与包含它的文件共享一个名称。所以在你的情况下。我的课是 PHPExcel。此外,每个项目#1 - 为什么你需要一个名为 PHPExcel 的库中的文件和子目录?子目录中包含什么?
    • PHPexcel.php 是主类,需要并使用 PHPExcel 目录中的其他类。
    • 如果 PHPExcel.php 在 PHPExcel 目录中,您需要将其反映在您的命名空间中,但它似乎没有。
    • 不,php excel 不在 PHPExcel 目录中。它在 Libraries 目录中(与 PHPExcel 目录一起)
    猜你喜欢
    • 2015-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-03
    相关资源
    最近更新 更多