一个PHP库,用于解析和生成用于Quickbooks Desktop的QBXML

v1.0.3 2024-02-22 03:18 UTC

This package is auto-updated.

Last update: 2024-09-22 04:29:33 UTC


README

这是一个简单的类集,用于解析和创建与Quickbooks Desktop通信的QBXML(可能通过Quickbooks Web Connector)。其中大部分是基于Keith Palmer之前的工作。我的实现允许您集成自己的应用程序逻辑 - 这个库只处理QBXML的解析。这还增加了命名空间、方法链,并修复了Keith工作中的一些错误和不一致性。

使用方法

解析

读取QBXML响应可能看起来像这样

$doc = (new \TheLogicStudio\QBXML\XML\Parser($response))->parse($errnum, $errmsg);
$root = $doc->getRoot();
$out = [];
foreach($root->getChildAt('QBXML QBXMLMsgsRs')->children() as $child) {
    if(str_ends_with($child->name(), 'QueryRs')) {
        /** @var Models\GenericObject $class */
        $class = '\\TheLogicStudio\\QBXML\\Models\\'.substr($child->name(), 0, -7);
        foreach($child->children() as $node) {
            $out[] = $class::fromXML($node);
        }
    }
}

创建

创建一个发送给Quickbooks的请求可能看起来像这样

$qbxml = (new \TheLogicStudio\QBXML\Models\Account())
    ->setName('My Account')
    ->setAccountNumber(99)
    ->asQBXML('AccountAddRq');

贡献

这段代码还远非完美 - 如果您想帮助改进它,请随意发送pull request。如果您有问题,您可以在𝕏上找到我,我的用户名是@IanTLS