Resource icon

hampel/xenforo-api – a PHP client for the XenForo REST API

hampel/xenforo-api

1.2.2 (2026-10-08)​

  • SiteInfo reads the scopes a key holds. XenForo sends key.scopes as a map of scope to true, not the list its documentation describes, so $scopes was always empty and hasScope() false for every key that is not allowed all scopes. Both shapes are read
  • The error-response log line carries the error codes, not the response body

hampel/xenforo-api-laravel

Unchanged - still at 1.2.0
hampel/xenforo-api

Unchanged - still at 1.2.1

hampel/xenforo-api-laravel

1.2.0 (2026-09-14)​


  • Breaking: the transport is bound under the container key xenforo.http_client instead of Psr\Http\Client\ClientInterface. Rebind xenforo.http_client from any service provider to replace it; binding ClientInterface no longer affects this package
  • xenforo.http_client is bound only when nothing has bound it already, so an application's override is kept in either provider order
  • The service provider no longer binds Psr\Http\Client\ClientInterface
  • InvalidConfiguration::httpClientNotPsr18() is raised when xenforo.http_client does not resolve to a PSR-18 client
hampel/xenforo-api

1.2.1 (2026-09-13)​


  • A 4xx is logged at info, not error: XenForo answered, and the typed exception carries the answer. error is for a forum that did not - a transport failure, a 5xx, a 2xx that is not JSON
  • The query string is left out of every logged URI, since on a lookup endpoint it is the lookup

1.2.0 (2026-09-13)​


  • Client::withKey($baseUri, $key, $client) - the short form for an API key, so the ordinary case no longer names a Config and an ApiKey to accept both defaults
  • README states which XenForo versions answer which endpoints - 154 of the 162 on 2.3, 144 on 2.2, 124 on 2.1 - measured on a real forum of each
  • The write exercise no longer stops at threads/{id}/mark-read on a forum older than 2.2

hampel/xenforo-api-laravel

1.1.0 (2026-09-14)​


  • XenForoManager::build() makes a client from an array of settings, for a forum that is not in config/xenforo.php. It takes the same keys as an entry under xenforo.forums, applies the same validation and credential selection, sends through the same transport, and is not memoised
  • InvalidConfiguration::missingUrl() and actingUserWithoutKey() accept null for settings passed to build()
  • README: Laravel Zero does not discover packages, so the provider must be listed in config/app.php and the facade imported by class name
  • README and PendingRequestClient docblock: RequestSending fires for requests the API client makes; ResponseReceived and ConnectionFailed do not
Back
Top Bottom