首页 > 解决方案 > 有没有一种简单的方法来创建自定义 PHP XML 编写器函数?

问题描述

我正在开发一个输出 XML 但编写 XML 结构和属性的 PHP Web API(使用 Laravel Lumen)已经失控,有没有一种简单的方法来创建一个缩短代码库的自定义函数?

我正在使用 PHP$xml = new \XMLWriter();并编写代码,例如:

$xml->startElement('DataStructure');
$xml->writeAttribute('version', "1.0");

我想做的是:

$xml->startElement('DataStructure');
$this->api_version();

where

function api_version() {
    $xml->writeAttribute('version', "1.0");
}

标签: phpxmllaravellumen

解决方案


您可以从 XMLWriter 继承以满足您的需求。您可以添加一个方法addDatastructure(),然后像这样使用它:

class ExtendedWriter extends XMLWriter {
    public function addDatastructure($version): self {
        $this->startElement('DataStructure');
        $this->writeAttribute('version', $version);

        return $this;
    }
}

// And use it like a so:
$writer = new ExtendedWriter;
$writer->addDatastructure($version);

您可以添加所需的任何功能。这使您的创建代码更少,但也增加了可重用性。


推荐阅读