PHPackages                             prestige-solution/ts-x-php-framework - 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. [API Development](/categories/api)
4. /
5. prestige-solution/ts-x-php-framework

ActiveLibrary[API Development](/categories/api)

prestige-solution/ts-x-php-framework
====================================

A modern, refactored PHP framework for Teamspeak 3 and Teamspeak 6 servers, offering full SSH support and extensive unit tests.

3.0.1(2mo ago)1121[3 issues](https://github.com/Prestige-Solution/ts-x-php-framework/issues)GPL-3.0PHPPHP ^8.2CI passing

Since Mar 16Pushed 2mo ago1 watchersCompare

[ Source](https://github.com/Prestige-Solution/ts-x-php-framework)[ Packagist](https://packagist.org/packages/prestige-solution/ts-x-php-framework)[ RSS](/packages/prestige-solution-ts-x-php-framework/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (9)Dependencies (14)Versions (13)Used By (0)

TeamSpeak X PHP Framework
=========================

[](#teamspeak-x-php-framework)

[![PHP-CS-Fixer](https://github.com/Prestige-Solution/ts-x-php-framework/actions/workflows/phpcsfixer.yml/badge.svg?branch=main)](https://github.com/Prestige-Solution/ts-x-php-framework/actions/workflows/phpcsfixer.yml)[![PHPUnit](https://github.com/Prestige-Solution/ts-x-php-framework/actions/workflows/phpunit.yml/badge.svg?branch=main)](https://github.com/Prestige-Solution/ts-x-php-framework/actions/workflows/phpunit.yml)[![Coverage](doc/coverage/coverage-badge.svg)](doc/coverage/coverage-badge.svg)

Caution

***IMPORTANT CHANGE***
With Version 3.x we refactored to integrate phpseclib3. This changes affects how TCP connections are established. The "raw" mode was removed, and the support for only ssh mode was established to handel Teamspeak 3 and Teamspeak 6 Server API connections.

The X stands for a non-specific Teamspeak Server Version. So we would handle all current and future Versions from a Teamspeak Server.

Unfortunately, the original repository is no longer up to date and has not been maintained for 3 years. This is the reason why this project is being created.
The main goal is to bring the framework up to date and to equip it with extended unit tests which can also be carried out with tests for a live server.
The ideal is that this version can be integrated into your own project and the main functionalities can be tested with your Teamspeak server.

---

Installation
============

[](#installation)

With the Refactoring at Version 3.x, the Framework has a lot of changes. But most functionalities and namespaces are the same.

**PHP Required Extensions**
`apt install php8.3 php8.3-{common,mbstring,ssh2} -y`

**Via Composer**
Current Version:
`composer require prestige-solution/ts-x-php-framework`

or with a specific release
`composer require prestige-solution/ts-x-php-framework:latest`
`composer require prestige-solution/ts-x-php-framework:3.0.0-beta`

or with a specific branch
`composer require prestige-solution/ts-x-php-framework:dev-ts-x-refactoring-dev`

---

If your teamspeak 3 server is not running with version 3.x, check the rsa host key situation
--------------------------------------------------------------------------------------------

[](#if-your-teamspeak-3-server-is-not-running-with-version-3x-check-the-rsa-host-key-situation)

Check out the documentation [make-ts3-ssh-compatible.md](doc/docker/make-ts3-ssh-compatible.md)
There you can find instructions to set up a compatible rsa host key. It should work with docker and non-docker versions.

New test routines for future developments and improvements with live server testing
===================================================================================

[](#new-test-routines-for-future-developments-and-improvements-with-live-server-testing)

**Prepare your Environment**
Before you start UnitTests, make sure that you have set the environment variables. You find more information's at [testing-live-server](doc/testing-live-server.md)

**Permissions for Query User**
The best way to test all functionalities is to use the serveradmin query user.
The serveradmin is != Server Admin there you can find in your Teamspeak Client UI.

serveradmin (Query)Server Admin (GUI)Max. permission value: 100 (=grant)Max. permission value: 75 (=grant)You can find more information in the Documentation [testing-live-server](doc/testing-live-server.md)

**Additional Node**

- We know the serveradmin (query user) is a high-security risk if you use it over the internet. We would try to find a better solution with SSH public key authentication.
- Currently, you can improve fail2ban, query\_ip\_whitelist and query\_ip\_blacklist.

**Run Tests**
To run all tests use `composer test`.

---

Build Factory URI
=================

[](#build-factory-uri)

Default URI Options
-------------------

[](#default-uri-options)

OptionsDefault Valuetimeout10If you build the serverquery without the above parameter, then their options will be set by default.
**Note:** don't set timeout to 0. Further Information's at [php.net](https://www.php.net/manual/de/function.stream-select.php)

Examples
--------

[](#examples)

- URI Example

```
'serverquery://:@:/?server_port=9987&no_query_clients=0&timeout=30&nickname='
```

- Contains Username or Password special chars like `+` then you can use

```
'serverquery://'.rawurlencode().':'.rawurlencode() .'@:/?server_port=9987&no_query_clients=0&timeout=30'
```

In my opinion, you should **don't use specials chars**. Better, create a new QueryLogin Password and / or Username.

- You can use IPv4, IPv6 or DNS. Implement the following Example in your Project.

```
if (filter_var($host, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) || filter_var(gethostbyname($host), FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) {
    $validatedHost = $host;
} elseif (filter_var($host, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) || filter_var(gethostbyname($host), FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) {
    $validatedHost = '['.$host.']';
} else {
    return false;
}
```

---

Important note
==============

[](#important-note)

We have no intention of abandoning the original repository altogether. We will keep the namespace so that an update to the original PlanetTeamspeak repository can be considered as far as possible and the Support from the Maintainer is back.

###  Health Score

40

—

FairBetter than 88% of packages

Maintenance65

Regular maintenance activity

Popularity14

Limited adoption so far

Community17

Small or concentrated contributor base

Maturity57

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 59.2% 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 ~44 days

Recently: every ~32 days

Total

9

Last Release

77d ago

Major Versions

2.1.0 → 3.0.0-beta2025-10-18

### Community

Maintainers

![](https://www.gravatar.com/avatar/ea9afe979ef5ea53fb3f7d0a03c7164f2963b91871031712c2335cfde08defec?d=identicon)[MajorOli](/maintainers/MajorOli)

---

Top Contributors

[![MajorOli](https://avatars.githubusercontent.com/u/63414715?v=4)](https://github.com/MajorOli "MajorOli (442 commits)")[![svenpaulsen](https://avatars.githubusercontent.com/u/7894194?v=4)](https://github.com/svenpaulsen "svenpaulsen (116 commits)")[![tturnerdev](https://avatars.githubusercontent.com/u/1414401?v=4)](https://github.com/tturnerdev "tturnerdev (94 commits)")[![Sebbo94BY](https://avatars.githubusercontent.com/u/5154682?v=4)](https://github.com/Sebbo94BY "Sebbo94BY (47 commits)")[![y4roc](https://avatars.githubusercontent.com/u/18329992?v=4)](https://github.com/y4roc "y4roc (31 commits)")[![je-schindler](https://avatars.githubusercontent.com/u/14254198?v=4)](https://github.com/je-schindler "je-schindler (2 commits)")[![Fjonan](https://avatars.githubusercontent.com/u/21336161?v=4)](https://github.com/Fjonan "Fjonan (2 commits)")[![snegrini](https://avatars.githubusercontent.com/u/6451752?v=4)](https://github.com/snegrini "snegrini (2 commits)")[![yonilerner](https://avatars.githubusercontent.com/u/278810?v=4)](https://github.com/yonilerner "yonilerner (2 commits)")[![Sensznet](https://avatars.githubusercontent.com/u/808838?v=4)](https://github.com/Sensznet "Sensznet (1 commits)")[![fonta](https://avatars.githubusercontent.com/u/6190791?v=4)](https://github.com/fonta "fonta (1 commits)")[![Newcomer1989](https://avatars.githubusercontent.com/u/11364569?v=4)](https://github.com/Newcomer1989 "Newcomer1989 (1 commits)")[![nick-strohm](https://avatars.githubusercontent.com/u/10092376?v=4)](https://github.com/nick-strohm "nick-strohm (1 commits)")[![Fabiryn](https://avatars.githubusercontent.com/u/12971461?v=4)](https://github.com/Fabiryn "Fabiryn (1 commits)")[![Trsak](https://avatars.githubusercontent.com/u/5057950?v=4)](https://github.com/Trsak "Trsak (1 commits)")[![vntw](https://avatars.githubusercontent.com/u/502368?v=4)](https://github.com/vntw "vntw (1 commits)")[![Wruczek](https://avatars.githubusercontent.com/u/7156344?v=4)](https://github.com/Wruczek "Wruczek (1 commits)")

---

Tags

teamspeakteamspeak-botteamspeak-queryts3phpframeworkapiserverinterfacequerymanagementteamspeakfiletransferts

###  Code Quality

TestsPHPUnit

Code StylePHP CS Fixer

### Embed Badge

![Health badge](/badges/prestige-solution-ts-x-php-framework/health.svg)

```
[![Health](https://phpackages.com/badges/prestige-solution-ts-x-php-framework/health.svg)](https://phpackages.com/packages/prestige-solution-ts-x-php-framework)
```

###  Alternatives

[planetteamspeak/ts3-php-framework

Modern use-at-will framework that provides individual components to manage TeamSpeak 3 Server instances

21786.4k5](/packages/planetteamspeak-ts3-php-framework)[comgate/sdk

Comgate PHP SDK

13327.8k](/packages/comgate-sdk)

PHPackages © 2026

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