将 PHPExcel 与 Composer 和 Symfony2.2 结合使用

2023-12-04

我在SO上找到了这个:如何在 Symfony 2 中正确使用 PHPExcel

这可行,但我想与作曲家一起使用它。 我已经解决的第一部分:为特殊标签加载 PHPExcel(最后一个稳定版本)

我不知道如何使用以下语法获取标签:

"repositories": [
    {
        "type": "vcs",
        "url": "https://github.com/umpirsky/SyliusAssortmentBundle"
    }
]

所以我用Package符号:
我发现,reference应该是github上的标签名称。 还有version不能是相同的值 (PHPExcel_1.7.8)。似乎不允许使用字母字符,因此只有数字形式的版本(1.7.8)

"repositories": [{
    "type": "package",
    "package": {
        "name": "PHPOffice/PHPExcel",
        "version": "1.7.8",
        "source": {
            "url": "https://github.com/PHPOffice/PHPExcel.git",
            "type": "git",
            "reference": "PHPExcel_1.7.8"
        }
    }
}]

下一步我没有解决。我尝试了自动加载的每种组合:psr-0、类映射、不同路径、相对于项目/供应商/phpexcel、每次更新作曲家,但没有任何效果。

只有当我把这一行放在下面时它才有效

$loader->add('PHPExcel', __DIR__.'/../vendor/PHPOffice/PHPExcel/Classes');

进入app/autoload.php。我发现,第一个字符串(PHPExcel) 也可以是空字符串:''.
如果我使用的话有什么区别吗PHPExcel or ''?

所以我的首要问题是,如何避免将此行写入 autoload.php,将等效命令放入我的项目的composer.json 中?


关于您的主要问题,问题是一旦安装了软件包,如果您更新定义并添加自动加载内容,那么运行composer update不会改变任何东西。 Composer 仍然拥有已安装在其“缓存”中的旧包,因此它使用它来生成自动加载,但失败了。

要解决此问题,您应该删除vendor/PHPOffice/PHPExcel直接运行composer update,这将使用composer.json中的最新信息重新安装它,包括自动加载等。您应该这样指定自动加载:

"repositories": [{
    "type": "package",
    "package": {
        "name": "PHPOffice/PHPExcel",
        "version": "1.8.0",
        "source": {
            "url": "https://github.com/PHPOffice/PHPExcel.git",
            "type": "git",
            "reference": "1.8.0"
        },
        "autoload": {
            "psr-0": {
                "PHPExcel": "Classes/"
            }
        }
    }
}],
"require": {
    "PHPOffice/PHPExcel": "1.8.*",
    ...

关于第二个问题和'' vs 'PHPExcel': ''只是说任何命名空间都可以在这个目录中找到。这意味着自动加载器将始终扫描此目录以查找类,这很方便,但比将名称空间显式映射到目录慢。因此,两者都有效,但更具体的形式是首选,尤其是在您公开发布的包中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 PHPExcel 与 Composer 和 Symfony2.2 结合使用 的相关文章

随机推荐

  • 手动响应鼠标悬停事件

    有没有办法触发 React 的 mouseover 和 mouseenter 事件 可以开火 ReactDOM findDOMNode someNode focus ReactDOM findDOMNode someNode click 有
  • PHP 找不到保存处理程序内存缓存

    我正在为这个问题绞尽脑汁 它应该很简单 但似乎找不到解决方案 所以希望你们中的一个人可以帮助我 我正在尝试使用 php 的 memcache 扩展来存储会话 我正在运行 MAMP 并已正确安装了扩展 我认为 它在我执行 phpinfo 时显
  • JPA中NamedQuery注解有什么好处?

    刚才我写了一个NamedQuery对于 JPA 实体 我们对此感到非常高兴 这里是 NamedQuery name Panties RED PANTIES QRY query SELECT p FROM Panties p WHERE p
  • 使用 iTextSharp 在 VB.NET 中读取 PDF 书签

    我正在制作一个工具 可以扫描 PDF 文件并搜索 PDF 书签和正文中的文本 我正在使用带有 VB NET 和 iTextSharp 的 Visual Studio 2008 如何从现有 PDF 文件加载书签列表 这取决于您所说的 书签 时
  • 如何找到采样边界内的最大圆?

    给定一组二维点 这些点是不规则形状的边界 该形状可能不是凸的并且可能有内孔 是否有一种算法可以找到适合边界的最大圆 我已经做了很多搜索 并且确实找到了接近的算法 例如最大的空圆问题 但到目前为止我发现没有一个与我所拥有的约束相匹配 动机 由
  • 将两行文本传递到InputBox中

    我的代码中有以下行要求用户输入 strFind InputBox Please enter the text to look for Replace Text in Files 我需要用户输入由 LF 或 CR 或 CRLF 换行符 分隔的
  • 为什么协议中的仅获取属性要求不能通过符合的属性来满足?

    为什么下面的代码会产生错误 protocol ProtocolA var someProperty ProtocolB get protocol ProtocolB class ConformsToB ProtocolB class Som
  • 在 WP7 中反序列化 JSON

    我有这个 JSON 我正在尝试在 Windows Phone 上读取它 我一直在玩DataContractJsonSerializer和 Json NET 但运气不太好 尤其是阅读每个 条目 lastUpdated 16 12 filter
  • 如何用SQL-Server 2000查询层次信息?

    我有一张桌子Folders包含有关文件夹的分层信息 FolderID FolderName ParentID 1 Folder1 0 2 Folder2 1 3 Folder3 2 4 Folder4 3 For Folder4我想获取以下
  • Android MapView 无法删除标记

    我正在使用 locationManager 和 ItemizedOverlay 来绘制 我的位置 标记 问题是当触发 onLocationChanged 时 我正在绘制新标记 而不是最后一个移动到新位置的标记 这是我的 onLocation
  • 如何正确清理 Excel 互操作对象?

    我在 C 中使用 Excel 互操作 ApplicationClass 并将以下代码放入我的finally子句中 while System Runtime InteropServices Marshal ReleaseComObject e
  • jQuery 按需加载图像

    我正在尝试按需加载图像 以防止下载不需要的图像 我正在使用 jQuery 到目前为止 这就是我想出的 region image attr src images e key jpg load function this fadeIn e ke
  • 如何避免在接口中重复使用相同的实现代码?

    首先 我为 又一个界面问题 道歉 不过 我认为这个问题可能值得一问 因为这是一个奇怪的问题 我正在使用的项目使用 Actionscript 3 但这更多是一个一般的 OOP 问题 情况是这样的 我有一个已经从基类继承的类 它是电子游戏中的一
  • Spring Data JDBC:DataRetrievalFailureException:无法将 [oracle.sql.ROWID] 转换为 [java.lang.Number]

    我是 Spring Data JDBC 的新手 我正在努力创建一个简单的 Dto 并将其持久保存在数据库上 我正在使用 Spring Boot 2 1 1 RELEASE 和 Oracle 12 数据库 UserDto Table valu
  • 如何使 std::istream_iterator 只读直到行尾?

    有以下代码 std vector
  • 如何保持打开的 xml 文档的样式

    我使用开放 XML Microsoft Word docx 作为文件模板来自动生成其他文档 在模板文档中 我定义了内容控件 并编写了代码来替换这些内容控件中的内容 内容被替换并生成文档 但我正在努力保持风格 在Word中 在检查内容控件的属
  • 将一个 div 放在两个垂直 div 旁边

    我试图让一个 div 在其容器中的高度为 100 其高度为 50 并在其旁边有两个 div 每个 div 的高度为 50 这是我的意思的一个例子 我还想在所有 div 之间留有边距 如上图所示 到目前为止 这是我的代码 div style
  • 使用正则表达式来匹配具有特定ID的div块[重复]

    这个问题在这里已经有答案了 我正在尝试匹配具有特定 id 的 div 块 这是我的正则表达式代码
  • 两个同一时间谷歌表格的价值差异[重复]

    这个问题在这里已经有答案了 为什么两个相同时间的值不同 因此无法使用vlookup 注意 时间取自两个不同的来源 一个是从网站生成的 CSV 文件 另一个是手动输入的 Example 时间值 上午 10 00 0 4166666666666
  • 将 PHPExcel 与 Composer 和 Symfony2.2 结合使用

    我在SO上找到了这个 如何在 Symfony 2 中正确使用 PHPExcel 这可行 但我想与作曲家一起使用它 我已经解决的第一部分 为特殊标签加载 PHPExcel 最后一个稳定版本 我不知道如何使用以下语法获取标签 repositor