【问题标题】:Autoload PHPExcel 1.0 in Symfony 2.6在 Symfony 2.6 中自动加载 PHPExcel 1.0
【发布时间】:2015-08-12 20:51:49
【问题描述】:

我们通过添加以下内容将 PHPExcel 添加到作曲家

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)。

【问题讨论】:

    标签: php symfony phpexcel


    【解决方案1】:

    不推荐使用 1.9 分支。它尚未完全转换为使用命名空间,并且可能会发生重大的代码更改。它也不向后兼容官方 1.8 分支,并且这些更改尚未记录在案,并且随着我们修改代码以利用 PHP 的新功能,还会进行进一步的重大更改。

    正式发布分支还是1.8

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

    【讨论】:

      【解决方案2】:

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

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

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

      然后重建 composer 生成的 autoload.php 文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-01-03
        • 1970-01-01
        • 2017-05-24
        • 1970-01-01
        • 2014-05-26
        • 1970-01-01
        • 2012-08-07
        相关资源
        最近更新 更多