Download the PHP package spamtroll/php-sdk without Composer

On this page you can find all versions of the php package spamtroll/php-sdk. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package php-sdk

Spamtroll PHP SDK

Latest Version PHP Version CI

Zero-dependency PHP client for the Spamtroll spam detection API.

Drop it into a WordPress plugin, an IPS Community Suite application, a framework app, or a plain PHP script — the core SDK has no runtime dependencies beyond ext-curl and ext-json. Host platforms can swap in their own HTTP transport (so WP calls go through wp_remote_* and respect admin filters, IPS calls go through \IPS\Http\Url) by implementing one interface.

Requirements

Installation

Without Composer (e.g. a bundled plugin), drop src/ somewhere in your project and include the fallback autoloader:

Quick start

checkSpamOrHam() never throws. Every failure — no API key, DNS, timeout, 401, 5xx, quota exhausted, an HTML error page — comes back as a response that reports wasSkipped() and never blocks. A blocking verdict can only come from a successful scan, so an integration written against this method cannot fail closed by forgetting a catch.

The verdict is the server's status, read through shouldBlock() / shouldModerate(). getSpamScore() is for display: the platform's thresholds live in the backend, not in your plugin.

Configuration

What the fields mean

Field Default Notes
baseUrl https://api.spamtroll.io/api/v1 Trailing slash stripped. Must be http(s).
timeout 3 Per-attempt seconds (connect + read).
maxRetries 2 Total attempts, not retries. First attempt counts.
retryBaseDelayMs 250 Backoff: attempt * base ms before attempt 2+. Set 0 to disable (tests).
totalBudgetMs 6000 Ceiling on the whole call, retries and sleeps included. 0 disables it.
userAgent spamtroll-php-sdk/{version} Host integrations should prepend their own identifier.
scoreDenominator 30.0 Maps raw API score (0…∞) to normalized 0.0–1.0 via min(1, raw / denominator). Display only.

Worst case with the defaults is ~6.25 s. The 0.9.x defaults (5 s × 3 attempts + 1.5 s backoff) could block a visitor's request for 16.5 s, long enough for PHP-FPM to kill the worker mid-retry and lose the post.

Score normalization

The score is a display value; the verdict is getStatus(). The backend scores on an open-ended additive scale where a raw score of 15 is "definitely spam" and 30 is twice the threshold. The SDK normalizes via min(1.0, raw / scoreDenominator):

Raw Normalized (denominator 30)
0 0.00
7.5 0.25
15 0.50
22.5 0.75
30+ 1.00

Use getSpamScore() for the 0–1 value and getRawSpamScore() for the native scale. Don't build a blocking threshold out of either — the platform's thresholds live in the backend and the server already applied them.

Custom HTTP adapter

WordPress and IPS integrations ship adapters that delegate to wp_remote_* and \IPS\Http\Url respectively, so platform-level filters (proxy, SSL overrides, request inspection) still apply.

Error handling

checkSpamOrHam() never throws — prefer it and you can skip this section. checkSpam() and testConnection() throw:

Exception When
NotConfiguredException Empty API key.
InvalidConfigurationException baseUrl is not http(s) (thrown from ClientConfig).
AuthenticationException HTTP 401 — invalid API key.
ConnectionException Connection failure after all retries.
TimeoutException Timeout after all retries (extends ConnectionException).
ServerException HTTP 5xx after all retries.
SpamtrollException Base for all SDK exceptions.

Non-fatal error responses — HTTP 402, 429, other 4xx — are returned as a Response with success === false, wasSkipped() === true and a machine-readable getErrorCode().

Documentation

Development

See docs/CONTRIBUTING.md for the full quality gate, including the aspell dependency required by composer peck.

License

MIT — see LICENSE.


All versions of php-sdk with dependencies

PHP Build Version
Package Version
Requires php Version >=8.0
ext-curl Version *
ext-json Version *
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package spamtroll/php-sdk contains the following files

Loading the files please wait ...