我应该如何在 composer 包中包含 XML 数据文件?

How should I include XML data file in a composer package?

我正在开发一个需要 XML 文件才能工作的 PHP 库(作为一个 composer 包)。我正在使用 simplexml_load_file 加载 XML 文件,但我想知道应该将文件放在哪里以及如何获得始终有效的路径。当前文件结构如下所示:

/
  src/
    Vendor/
      Library.php
  tests/
    LibraryTest.php
  composer.json
  composer.lock

我的 composer.json 文件:

{
    "name": "vendor/library",
    "require": {
        "php": ">=5.3.0"
    },
    "autoload": {
        "psr-0": {
            "Vendor": "src/"
        }
    }
}

你不能直接这样做,但有一些可能性:

  1. 创建一个仅包含您的 XML 文件的私有存储库,并将其添加到您的作曲家。然后您将在供应商文件夹中找到它。您可以在此处找到有关如何创建自定义存储库的文档:https://getcomposer.org/doc/articles/handling-private-packages-with-satis.md

  2. 将其保存在您的应用程序中的某个 data 文件夹中,然后添加到 GIT.

  3. 向您的应用程序添加一个简单的检查,这样如果 XML 文件还没有找到,显示消息以及如何获取它的信息。

我建议混合第 2 点和第 3 点。