- How do I install planetteamspeak/ts3-php-framework in a Laravel project?
- Install it with Composer using composer require planetteamspeak/ts3-php-framework; it requires PHP 8.1, 8.2 or 8.3. Classes are autoloaded under the PlanetTeamSpeak\TeamSpeak3Framework namespace, so you can call the URI-based factory() entry point directly. There is no Laravel package discovery, service provider or config publishing, so you should bind your own adapter or client wrapper in a service provider.
- Does this package work with Laravel 10 and Laravel 11?
- The package ships no Laravel integration at all: no service provider, no facade, no config publishing and no DI contract. It runs fine inside Laravel 10 or 11 as plain PHP in your infrastructure layer, as long as your PHP runtime is 8.1 to 8.3, since the library caps at 8.3 and PHP 8.4 is unverified. The clean pattern is to define an application-owned interface and hide the framework behind it.
- What can I actually manage on a TeamSpeak server with this framework?
- It is a ServerQuery protocol client, so it exposes virtual servers, channels, clients, permission groups and file transfers for icons and other assets through an object graph. The README also claims TeamSpeak 5 access, but the stated requirements target TeamSpeak 3 v3.4.0 (build 1536564584) or higher, so verify TS5 support against the source before relying on it. Typical uses are community operations automation, channel and group provisioning, moderation tooling and TSViewer widgets.
- Is ts3-php-framework MIT or GPL licensed?
- The signals conflict: the README prose states GNU General Public License, while the repository metadata and package listing say MIT. That is the difference between free commercial redistribution and copyleft obligations. Legal must resolve it against the actual LICENSE file and composer manifest before any production commitment.
- How do I avoid ServerQuery flood bans when using this library?
- ServerQuery bans source IPs for exceeding roughly 10 commands per 3 seconds by default, and the library does not throttle for you. Avoid N+1 patterns such as per-client clientInfo calls or channel-by-channel enumeration, batch and cache reads, and queue write commands. Confirm the actual flood limits with whoever administers the TeamSpeak server and consider having your IP whitelisted.
- Is this package safe to use inside PHP-FPM web requests?
- Connections are blocking by default, with blocking=0 as an opt-in, and there is no async reactor. In PHP-FPM a hung socket ties up a worker, and the event and signal-slot features implicitly assume a long-running CLI process rather than a request. For web requests, keep queries short and read-only with explicit timeouts, and run listeners as queue or CLI workers.
- How should I test code that uses the TS3 PHP Framework?
- The package's own PHPUnit suite validates the library, not your usage, and it offers no HTTP-style fake or record-and-replay harness. Define your own TeamSpeakClient contract and swap in a stub implementation in tests. Keeping connection handling, retries, throttling and command building in your wrapper is what makes the integration testable.
- How do I keep TeamSpeak ServerQuery credentials out of logs?
- Credentials are embedded in the connection URI, for example serverquery://user:pass@host:10011/, so anything that prints the URI exposes query-admin access. Make sure application logs, Telescope output and exception traces never include it. Store secrets in environment config and build the URI only at the moment of connection.
- Can user input like channel names cause ServerQuery command injection?
- ServerQuery commands are space-delimited with pipe and backslash escapes, so user-controlled strings passed into create or modify calls must be escaped. Confirm that the library escapes consistently rather than assuming it does. Validate and sanitize nicknames and channel names inside your own adapter as a second layer.
- How actively maintained is this package, and what are the alternatives?
- It has roughly 210 GitHub stars, zero dependents and a single-maintainer bus factor, with no commercial support path. The project dates back to 2010 and is unit-tested, but its metadata shows drift, including a future-dated last release and mixed PHP 5 and PHP 8.1 to 8.3 claims, so treat the README as a starting point and the source as authority. If TeamSpeak is only a peripheral integration, a thin bespoke ServerQuery client is a credible alternative that removes the dependency.