在 Symfony 2.6 中自动加载 PHPExcel 1.0

Autoload PHPExcel 1.0 in Symfony 2.6

我们通过添加以下内容将 PHPExcel 添加到 composer

repositories:

    {
        "type": "package",
        "package": {
            "name": "PHPOffice/PHPExcel",
            "version": "1.9",
            "source": {
                "url": "https://github.com/PHPOffice/PHPExcel.git",
                "type": "git",
                "reference": "1.9"
            },
            "autoload": {
                "psr-0": {
                    "PHPExcel": "src/"
                }
            }
        }

require:

    "PHPOffice/PHPExcel": "1.9.*"

在我们的代码中:

use PHPExcel\IOFactory;

    ...


    $file = $request->get('file');

    $inputFileType = IOFactory::identify($file);

我们得到的错误是:

Attempted to load class "IOFactory" from namespace "PHPExcel".
Did you forget a "use" statement for another namespace?

名称空间看起来正确 (https://github.com/PHPOffice/PHPExcel/blob/1.9/src/PhpSpreadsheet/IOFactory.php)。

我没用过1.9。很高兴看到他们正在转向命名空间。也就是说,为了稳定性,您最好坚持使用 1.8。

无论如何,1.9 依赖于 psr-4。尝试将此添加到您的 composer.json 文件中:

"autoload": {
    "psr-4": {
        "PHPExcel\": "src/PhpSpreadsheet"
    }
}

然后重建作曲家生成的 autoload.php 文件。

不推荐使用 1.9 分支。它尚未完全转换为使用名称空间,并且可能会发生重大代码更改。它也不向后兼容官方 1.8 分支,并且尚未记录更改,并且随着我们修改代码以利用 PHP.

的更新功能,还会进行进一步的重大更改

官方发布分支还是1.8

仅仅因为 github 上存在 1.8 分支并不意味着它是工作代码。我将它存储在那里,以便它可用于共享开发,并作为一种安全措施(而不是将其全部保存在我的开发笔记本电脑上),以防我 运行 明天乘公共汽车过来。