【问题标题】:Symfony 2, adding vendor library (PHPExcel etc.)Symfony 2,添加供应商库(PHPExcel 等)
【发布时间】:2013-03-29 05:51:35
【问题描述】:

在我的 symfony 2.2 应用程序中,我想使用 PHPExcel 库。所以我下载了它,并将 Classes 库的内容复制到 /vendor/phpexcel 目录:

vendor/
    phpexcel/
        PHPExcel/
        PHPExcel.php

之后,我将以下内容添加到 app/autoload.php 的 $loader = require ... 行下方:

$loader = require __DIR__.'/../vendor/autoload.php';

//The following was added
$loader->registerPrefixes(array(
    'PHPExcel' => __DIR__ . '/../vendor/phpexcel'
));

// intl
...

现在,如果我浏览到我的 Web 应用程序,它会返回 HTTP 错误 500(内部服务器错误)。我阅读了以下帖子,但无法解决问题: How to use PHPExcel correctly with Symfony 2 有人可以帮我改正吗?

【问题讨论】:

    标签: symfony phpexcel


    【解决方案1】:

    您永远不应手动下载某些内容并将其放在vendor 目录中。 Composer 管理供应商目录,因此应该保存以删除该目录并再次运行composer install。 vendor 目录也默认从 Git 中排除。

    要使用 composer 安装 PHPExcel,请将其添加到 composer.json:

    "require": {
        ...
        "phpexcel/phpexcel": "1.7.*"
    }
    

    与 Composer 一起安装时,您也不必担心自动加载。

    【讨论】:

    • 我听从了你的建议,在“php composer.phar update”之后仍然出现同样的服务器错误。
    • @synergetic,在不知道实际错误是什么的情况下,无法发表评论。您是否在“开发”环境中遇到错误?那应该给出一些更详细的例外吗?如果没有,请检查您的服务器日志。
    • 我检查了error_log。它说打开失败需要'/var/www/html/taden/php/vendor/kriswallsmith/assetic/src/functions.php'。也许this 一个是相关的,但仍然没有帮助我。
    • 顺便说一句,如果我只是执行“php composer.phar update phpexcel/phpexcel”,那么错误就会消失。但现在我有另一个问题:我的代码 (new \PHPExcel()) 没有找到 PHPExcel 类。
    • 如果您还没有恢复在 autoload.php 中所做的更改,您可能需要恢复。
    【解决方案2】:

    我为 PHPExcel 安装了https://github.com/liuggio/ExcelBundle。 Bundle 包括 PHPExcel(添加了 composer 的相关链接)。您可以轻松地使用 PHPExcel,而不用想知道捆绑包的内容。打电话给new \PHPExcel(); 然后你就搬家了。我希望这个捆绑包有所帮助。

    【讨论】:

      【解决方案3】:

      Composer 似乎对 SELinux 有问题。见this。虽然不推荐,但将 SELinux 设置为 permissive 可能是一种解决方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-10-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-23
        • 1970-01-01
        相关资源
        最近更新 更多