planetteamspeak / ts3phpframework

Modern use-at-will framework that provides individual components to manage TeamSpeak 3 Server instances
https://www.planetteamspeak.com
GNU General Public License v3.0
211 stars 59 forks source link

Calling TeamSpeak3::factory fails without username and password #213

Closed Wruczek closed 4 months ago

Wruczek commented 9 months ago

The framework should support creating TeamSpeak3 node instances without requiring username and password to be provided. Even the URL examples included in the description of TeamSpeak3::factory fail, as they do not contain username and password.

I'm using TeamSpeak 3 PHP Framework 1.2.1 on PHP 8.2.12.

Example code:

<?php

use PlanetTeamSpeak\TeamSpeak3Framework\TeamSpeak3;

require_once __DIR__ . '/vendor/autoload.php';

TeamSpeak3::factory('serverquery://127.0.0.1:10011/?timeout=3');

Error:

Fatal error: Uncaught Error: Call to a member function toString() on null in vendor\planetteamspeak\ts3-php-framework\src\Helper\Uri.php:371
Stack trace:
#0 vendor\planetteamspeak\ts3-php-framework\src\Helper\Uri.php(173): PlanetTeamSpeak\TeamSpeak3Framework\Helper\Uri->checkPort()
#1 vendor\planetteamspeak\ts3-php-framework\src\Helper\Uri.php(131): PlanetTeamSpeak\TeamSpeak3Framework\Helper\Uri->isValid()
#2 vendor\planetteamspeak\ts3-php-framework\src\TeamSpeak3.php(346): PlanetTeamSpeak\TeamSpeak3Framework\Helper\Uri->__construct(Array)
#3 (myfile): PlanetTeamSpeak\TeamSpeak3Framework\TeamSpeak3::factory('serverquery://1...')
#4 {main}
  thrown in vendor\planetteamspeak\ts3-php-framework\src\Helper\Uri.php on line 371
Sebbo94BY commented 4 months ago

Fixed in the linked pull request.