如何将FluentDom库包含到我的PHP文件中?

时间:2019-02-13 15:43:16

标签: php json xml

前提条件:具有用PHP编写的Amazon MWS演示文件。 Amazon以XML响应结果。 我的工具可以与Amazon的输出配合使用,但只能与json一起使用。

需要将Amazon的输出转换为json。

  1. 我从这里https://github.com/ThomasWeinert/FluentDOM下载了FluentDOM
  2. 将其解压缩到我的脚本附近
  3. 试图在我的文件中包含FluentDom库

我的脚本的路径:

  

C:\ xampp \ htdocs \ src \ MarketplaceWebServiceProducts \ Samples \ MyGetASINdetails.php

FluentDom的路径:

  

C:\ xampp \ htdocs \ src \ src \ FluentDOM.php

我试图以这种方式连接库

include('../../src/FluentDOM.php');

以这种方式从XML转换为Json(在StackOverflow的其他线程中看到):

$dom = new DOMDocument();
$dom->loadXML($response->toXML());
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
//      echo $dom->saveXML();
$json = new \FluentDOM\Serializer\Json\RabbitFish($dom->saveXML());
$object = json_decode($json);
echo "<pre>" . print_r( $object, true) . "</pre>";
echo "<script>console.log({$json})</script>";

跑步时得到

  

致命错误:在第43行的C:\ xampp \ htdocs \ src \ src \ FluentDOM.php中,带有类类型提示的参数的默认值只能为NULL

FluentDOM.php的第43行:

public static function load($source, string $contentType = 'text/xml', array $options = []): \FluentDOM\DOM\Document {

1 个答案:

答案 0 :(得分:0)

FluentDOM 7需要PHP> = 7.0。您可以使用旧版本。 FluentDOM 6.2需要PHP> = 5.6

但是FluentDOM是Composer软件包。您确实应该使用Composer将其添加到您的项目中。它将安装兼容版本(如果您定义了该版本),并照顾自动装带器(您当前的错误)。

FluentDOM 5.3是最后一个包含“ _require.php”以支持手动安装的版本。