PHPackages                             wot-php/wot-td - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. wot-php/wot-td

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

wot-php/wot-td
==============

An open-source, lightweight PHP library for working with Web of Things (WoT) Thing Descriptions (TD).

v0.3.0(1y ago)59MITPHP &gt;=8.1

Since Nov 24Compare

[ Source](https://github.com/doguabaris/WoT.php)[ Packagist](https://packagist.org/packages/wot-php/wot-td)[ RSS](/packages/wot-php-wot-td/feed)WikiDiscussions Synced 1w ago

READMEChangelog (3)Dependencies (9)Versions (4)Used By (0)

WoT.php
=======

[](#wotphp)

An open-source PHP library for working with [**Web of Things (WoT)**](https://www.w3.org/WoT/) Thing Descriptions (TD). It includes features to parse, validate, and generate TD documents. It adheres to the [W3C TD JSON Schema](https://github.com/w3c/wot-thing-description/blob/main/validation/td-json-schema-validation.json) but does not follow the [W3C WoT Scripting API](https://www.w3.org/TR/wot-scripting-api).

[![Latest Stable Version](https://camo.githubusercontent.com/1ee393fe8e622467ddd6e7f9deb5ae0b6b3076d51314e0a85c5f40438ed7fb45/68747470733a2f2f706f7365722e707567782e6f72672f776f742d7068702f776f742d74642f763f7374796c653d666f722d7468652d6261646765)](https://packagist.org/packages/wot-php/wot-td)[![Latest Unstable Version](https://camo.githubusercontent.com/2ed86d4dbdc68ac83af10fb2912dc57ee22428b344fec8c26bd448f6a09be05f/68747470733a2f2f706f7365722e707567782e6f72672f776f742d7068702f776f742d74642f762f756e737461626c653f7374796c653d666f722d7468652d6261646765)](https://packagist.org/packages/wot-php/wot-td)[![License](https://camo.githubusercontent.com/ab7944cabf400ebeb0c299153241228285e386eb130d169e6bee6669f639b4f8/68747470733a2f2f706f7365722e707567782e6f72672f776f742d7068702f776f742d74642f6c6963656e73653f7374796c653d666f722d7468652d6261646765)](https://packagist.org/packages/wot-php/wot-td)[![PHP Version Require](https://camo.githubusercontent.com/4fc58bff4617366fec8bc394406003b9cc992ab35f9729066b164dc60d218005/68747470733a2f2f706f7365722e707567782e6f72672f776f742d7068702f776f742d74642f726571756972652f7068703f7374796c653d666f722d7468652d6261646765)](https://packagist.org/packages/wot-php/wot-td)

Features
--------

[](#features)

- Describe and document Thing Descriptions programmatically.
- Generate compliant Thing Descriptions programmatically.
- Parse Thing Descriptions from JSON format.
- Validate Thing Descriptions against the W3C WoT TD schema.

Installation
------------

[](#installation)

Install the library via Composer:

```
composer require wot-php/wot-td
```

Usage
-----

[](#usage)

```
use WoT\Core\Describe\ThingDescription;
use WoT\Core\Generate\Generator;

$td = new ThingDescription();
$td->setTitle("Smart Thermostat")
    ->addProperty("temperature", [
        "type" => "number",
        "forms" => [
            [
                "href" => "/properties/temperature",
                "op" => ["readproperty"],
            ],
        ],
    ])
    ->addProperty("status", [
        "type" => "boolean",
        "forms" => [
            [
                "href" => "/properties/status",
                "op" => ["readproperty"],
            ],
        ],
    ]);

$json = Generator::generate($td);

echo $json;
```

Contributing
------------

[](#contributing)

See [CONTRIBUTING.md](CONTRIBUTING.md) for contribution guidelines.

License
-------

[](#license)

This library is licensed under the [MIT License](LICENSE).

###  Health Score

26

—

LowBetter than 40% of packages

Maintenance40

Moderate activity, may be stable

Popularity9

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity40

Maturing project, gaining track record

 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 ~65 days

Total

3

Last Release

499d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/2094646?v=4)[SalesScreen](/maintainers/dogu)[@dogu](https://github.com/dogu)

---

Top Contributors

[![doguabaris](https://avatars.githubusercontent.com/u/135986694?v=4)](https://github.com/doguabaris "doguabaris (8 commits)")

---

Tags

json-schemaJSON-LDiotinternet of thingsschema validationwotweb-of-thingsthing-description

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/wot-php-wot-td/health.svg)

```
[![Health](https://phpackages.com/badges/wot-php-wot-td/health.svg)](https://phpackages.com/packages/wot-php-wot-td)
```

###  Alternatives

[composer/composer

Composer helps you declare, manage and install dependencies of PHP projects. It ensures you have the right stack everywhere.

29.5k199.6M3.4k](/packages/composer-composer)[paycore/openfintech-data

Openfintech data

22310.1k](/packages/paycore-openfintech-data)[artesaos/seotools

SEO Tools for Laravel and Lumen

3.4k5.6M65](/packages/artesaos-seotools)[oat-sa/tao-core

TAO core extension

64147.9k151](/packages/oat-sa-tao-core)[wikimedia/parsoid

Parsoid, a bidirectional parser between wikitext and HTML5

200569.1k3](/packages/wikimedia-parsoid)[ml/json-ld

JSON-LD Processor for PHP

3377.4M50](/packages/ml-json-ld)

PHPackages © 2026

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