PHPackages                             goreilly/web-connector - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. goreilly/web-connector

ActiveLibrary

goreilly/web-connector
======================

Framework for integrating the Quickbooks Web Connector into web applications

1.1.5(9y ago)4942Apache-2.0PHPPHP &gt;=5.4.0

Since Apr 18Pushed 9y ago3 watchersCompare

[ Source](https://github.com/goreilly/web-connector)[ Packagist](https://packagist.org/packages/goreilly/web-connector)[ RSS](/packages/goreilly-web-connector/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (1)Versions (7)Used By (0)

Usage
=====

[](#usage)

Endpoints
---------

[](#endpoints)

The endpoints handle each individual SOAP request. You won't need to override them, but you will need to inject each of their dependencies.

Tasks
-----

[](#tasks)

A task implements `goreilly\WebConnector\Task\TaskInterface` to determine if a request should be sent and what kind of xml to send.

Handlers
--------

[](#handlers)

A handler implements `\goreilly\WebConnector\QBXMLResponseHandler\QBXMLResponseHandlerInterface`. When a response is returned from Quickbooks, a handler that supports the response content will be selected and ran.

### Example Handler

[](#example-handler)

```
class ItemQueryHandler implements QBXMLResponseHandlerInterface
{
    public function supports($type)
    {
        return $type === 'ItemQueryRs';
    }

    public function handle(\SimpleXMLElement $element)
    {
        // Insert items into database...
    }
}
```

Queue
-----

[](#queue)

The Queue persists between requests. It will last for one click of the "Update Selected" button in the Web Connector because it clears cookies after that. You can store the Queue however you want, like in the session. You just need to retrieve and pass the Queue to the Server each request.

The Queue must be injected into the Handlers that need it.

- SendRequestXMLHandler: Uses the Queue to build and send XML from tasks stored in the queue.
- AuthenticateEndpoint: Uses the Queue to report the initial progress.
- ReceiveResponseXMLEndpoint: Uses the Queue to report progress after handling the response.

Authentication
--------------

[](#authentication)

Authentication is optional, but you must pass an Authenticator object to the Authentication Endpoint. If you would like to always accept every request, use the NullAuthenticator.

Where To Start
==============

[](#where-to-start)

1. Determine what you want to get from Quickbooks.
2. Look up the correct Query and Response formats from the Intuit Documentation: (Choose qbXML and the correct SDK version)
3.

Notes
=====

[](#notes)

- If changes don't seem to be effecting anything try to stop and start your PHP Development Server since it caches the SOAPServer.

Road Map
========

[](#road-map)

1. Adding Responses to Handlers. I don't know if they need them?
2. Unit Tests
3. QBXML Validation via xsd
4. Error Handling
5. Find correct WSDL file

###  Health Score

30

—

LowBetter than 65% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity15

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity62

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~15 days

Total

6

Last Release

3595d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/6ea8f93c2ad4716530494ad765a958c2e14db4522f790362654e595e8f8f16f8?d=identicon)[goreilly](/maintainers/goreilly)

---

Top Contributors

[![jaywilliams](https://avatars.githubusercontent.com/u/3330?v=4)](https://github.com/jaywilliams "jaywilliams (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/goreilly-web-connector/health.svg)

```
[![Health](https://phpackages.com/badges/goreilly-web-connector/health.svg)](https://phpackages.com/packages/goreilly-web-connector)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
