Source Query PHP Class
diff --git a/SourceQuery/Buffer.class.php b/SourceQuery/Buffer.php
similarity index 88%
rename from SourceQuery/Buffer.class.php
rename to SourceQuery/Buffer.php
index ac1c3b1..6c4188a 100644
--- a/SourceQuery/Buffer.class.php
+++ b/SourceQuery/Buffer.php
@@ -1,12 +1,23 @@
*
- * Website: https://xpaw.me
- * GitHub: https://github.com/xPaw/PHP-Source-Query-Class
+ * @link https://xpaw.me
+ * @link https://github.com/xPaw/PHP-Source-Query-Class
+ *
+ * @license GNU Lesser General Public License, version 2.1
+ *
+ * @internal
+ */
+
+ namespace xPaw\SourceQuery;
+
+ /**
+ * Class Buffer
+ *
+ * @package xPaw\SourceQuery
*/
-
- class SourceQueryBuffer
+ class Buffer
{
/**
* Buffer
diff --git a/SourceQuery/Exception/AuthenticationException.php b/SourceQuery/Exception/AuthenticationException.php
new file mode 100644
index 0000000..ff0b2a1
--- /dev/null
+++ b/SourceQuery/Exception/AuthenticationException.php
@@ -0,0 +1,19 @@
+
+ *
+ * @link https://xpaw.me
+ * @link https://github.com/xPaw/PHP-Source-Query-Class
+ *
+ * @license GNU Lesser General Public License, version 2.1
+ *
+ * @internal
+ */
+
+ namespace xPaw\SourceQuery\Exception;
+
+ class AuthenticationException extends SourceQueryException
+ {
+ const BAD_PASSWORD = 1;
+ const BANNED = 2;
+ }
diff --git a/SourceQuery/Exception/InvalidArgumentException.php b/SourceQuery/Exception/InvalidArgumentException.php
new file mode 100644
index 0000000..5bf6288
--- /dev/null
+++ b/SourceQuery/Exception/InvalidArgumentException.php
@@ -0,0 +1,18 @@
+
+ *
+ * @link https://xpaw.me
+ * @link https://github.com/xPaw/PHP-Source-Query-Class
+ *
+ * @license GNU Lesser General Public License, version 2.1
+ *
+ * @internal
+ */
+
+ namespace xPaw\SourceQuery\Exception;
+
+ class InvalidArgumentException extends SourceQueryException
+ {
+ const TIMEOUT_NOT_INTEGER = 1;
+ }
diff --git a/SourceQuery/Exception/InvalidPacketException.php b/SourceQuery/Exception/InvalidPacketException.php
new file mode 100644
index 0000000..5acde62
--- /dev/null
+++ b/SourceQuery/Exception/InvalidPacketException.php
@@ -0,0 +1,21 @@
+
+ *
+ * @link https://xpaw.me
+ * @link https://github.com/xPaw/PHP-Source-Query-Class
+ *
+ * @license GNU Lesser General Public License, version 2.1
+ *
+ * @internal
+ */
+
+ namespace xPaw\SourceQuery\Exception;
+
+ class InvalidPacketException extends SourceQueryException
+ {
+ const PACKET_HEADER_MISMATCH = 1;
+ const BUFFER_EMPTY = 2;
+ const BUFFER_NOT_EMPTY = 3;
+ const CHECKSUM_MISMATCH = 4;
+ }
diff --git a/SourceQuery/Exception/SocketException.php b/SourceQuery/Exception/SocketException.php
new file mode 100644
index 0000000..3afa954
--- /dev/null
+++ b/SourceQuery/Exception/SocketException.php
@@ -0,0 +1,18 @@
+
+ *
+ * @link https://xpaw.me
+ * @link https://github.com/xPaw/PHP-Source-Query-Class
+ *
+ * @license GNU Lesser General Public License, version 2.1
+ *
+ * @internal
+ */
+
+ namespace xPaw\SourceQuery\Exception;
+
+ class SocketException extends SourceQueryException
+ {
+ const COULD_NOT_CREATE_SOCKET = 1;
+ }
diff --git a/SourceQuery/Exception/SourceQueryException.php b/SourceQuery/Exception/SourceQueryException.php
new file mode 100644
index 0000000..cc16b7b
--- /dev/null
+++ b/SourceQuery/Exception/SourceQueryException.php
@@ -0,0 +1,18 @@
+
+ *
+ * @link https://xpaw.me
+ * @link https://github.com/xPaw/PHP-Source-Query-Class
+ *
+ * @license GNU Lesser General Public License, version 2.1
+ *
+ * @internal
+ */
+
+ namespace xPaw\SourceQuery\Exception;
+
+ abstract class SourceQueryException extends \Exception
+ {
+ // Base exception class
+ }
diff --git a/SourceQuery/Exception/TimeoutException.php b/SourceQuery/Exception/TimeoutException.php
new file mode 100644
index 0000000..ec93fb4
--- /dev/null
+++ b/SourceQuery/Exception/TimeoutException.php
@@ -0,0 +1,18 @@
+
+ *
+ * @link https://xpaw.me
+ * @link https://github.com/xPaw/PHP-Source-Query-Class
+ *
+ * @license GNU Lesser General Public License, version 2.1
+ *
+ * @internal
+ */
+
+ namespace xPaw\SourceQuery\Exception;
+
+ class TimeoutException extends SourceQueryException
+ {
+ const TIMEOUT_CONNECT = 1;
+ }
diff --git a/SourceQuery/Exceptions.class.php b/SourceQuery/Exceptions.class.php
deleted file mode 100644
index a9d4377..0000000
--- a/SourceQuery/Exceptions.class.php
+++ /dev/null
@@ -1,43 +0,0 @@
-
*
- * Website: https://xpaw.me
- * GitHub: https://github.com/xPaw/PHP-Source-Query-Class
+ * @link https://xpaw.me
+ * @link https://github.com/xPaw/PHP-Source-Query-Class
+ *
+ * @license GNU Lesser General Public License, version 2.1
+ *
+ * @internal
*/
+
+ namespace xPaw\SourceQuery;
use xPaw\SourceQuery\Exception\AuthenticationException;
-
- class SourceQueryGoldSourceRcon
+
+ /**
+ * Class GoldSourceRcon
+ *
+ * @package xPaw\SourceQuery
+ *
+ * @uses xPaw\SourceQuery\Exception\AuthenticationException
+ */
+ class GoldSourceRcon
{
/**
* Points to buffer class
*
- * @var SourceQueryBuffer
+ * @var Buffer
*/
private $Buffer;
/**
* Points to socket class
*
- * @var SourceQuerySocket
+ * @var Socket
*/
private $Socket;
@@ -57,6 +70,7 @@
/**
* @param int $Length
* @throws AuthenticationException
+ * @return bool
*/
public function Read( $Length = 1400 )
{
diff --git a/SourceQuery/Socket.class.php b/SourceQuery/Socket.php
similarity index 87%
rename from SourceQuery/Socket.class.php
rename to SourceQuery/Socket.php
index 41bb7a5..6599b13 100644
--- a/SourceQuery/Socket.class.php
+++ b/SourceQuery/Socket.php
@@ -1,15 +1,29 @@
*
- * Website: https://xpaw.me
- * GitHub: https://github.com/xPaw/PHP-Source-Query-Class
+ * @link https://xpaw.me
+ * @link https://github.com/xPaw/PHP-Source-Query-Class
+ *
+ * @license GNU Lesser General Public License, version 2.1
+ *
+ * @internal
*/
+
+ namespace xPaw\SourceQuery;
use xPaw\SourceQuery\Exception\InvalidPacketException;
use xPaw\SourceQuery\Exception\SocketException;
-
- class SourceQuerySocket
+
+ /**
+ * Class Socket
+ *
+ * @package xPaw\SourceQuery
+ *
+ * @uses xPaw\SourceQuery\Exception\InvalidPacketException
+ * @uses xPaw\SourceQuery\Exception\SocketException
+ */
+ class Socket
{
public $Socket;
public $Engine;
@@ -21,7 +35,7 @@
/**
* Points to buffer class
*
- * @var SourceQueryBuffer
+ * @var Buffer
*/
private $Buffer;
@@ -144,7 +158,7 @@
// Let's make sure this function exists, it's not included in PHP by default
if( !Function_Exists( 'bzdecompress' ) )
{
- throw new RuntimeException( 'Received compressed packet, PHP doesn\'t have Bzip2 library installed, can\'t decompress.' );
+ throw new \RuntimeException( 'Received compressed packet, PHP doesn\'t have Bzip2 library installed, can\'t decompress.' );
}
$Buffer = bzdecompress( $Buffer );
diff --git a/SourceQuery/SourceQuery.class.php b/SourceQuery/SourceQuery.php
similarity index 93%
rename from SourceQuery/SourceQuery.class.php
rename to SourceQuery/SourceQuery.php
index 1fc2bab..0c0e94b 100644
--- a/SourceQuery/SourceQuery.class.php
+++ b/SourceQuery/SourceQuery.php
@@ -1,30 +1,36 @@
*
- * Special thanks to koraktor for his awesome Steam Condenser class,
- * I used it as a reference at some points.
+ * @link https://xpaw.me
+ * @link https://github.com/xPaw/PHP-Source-Query-Class
+ *
+ * @license GNU Lesser General Public License, version 2.1
*/
-
- require __DIR__ . '/Exceptions.class.php';
- require __DIR__ . '/Buffer.class.php';
- require __DIR__ . '/Socket.class.php';
- require __DIR__ . '/SourceRcon.class.php';
- require __DIR__ . '/GoldSourceRcon.class.php';
-
+
+ namespace xPaw\SourceQuery;
+
use xPaw\SourceQuery\Exception\InvalidArgumentException;
use xPaw\SourceQuery\Exception\TimeoutException;
use xPaw\SourceQuery\Exception\InvalidPacketException;
-
+
+ /**
+ * Class SourceQuery
+ *
+ * @package xPaw\SourceQuery
+ *
+ * @uses xPaw\SourceQuery\Exception\InvalidArgumentException
+ * @uses xPaw\SourceQuery\Exception\TimeoutException
+ * @uses xPaw\SourceQuery\Exception\InvalidPacketException
+ */
class SourceQuery
{
/**
* Values returned by GetChallenge()
*
- * TODO: Get rid of this? Improve? Do something else?
+ * @todo Get rid of this? Improve? Do something else?
*/
const GETCHALLENGE_FAILED = 0;
const GETCHALLENGE_ALL_CLEAR = 1;
@@ -71,21 +77,21 @@
/**
* Points to rcon class
*
- * @var SourceQueryRcon
+ * @var SourceRcon
*/
private $Rcon;
/**
* Points to buffer class
*
- * @var SourceQueryBuffer
+ * @var Buffer
*/
private $Buffer;
/**
* Points to socket class
*
- * @var SourceQuerySocket
+ * @var Socket
*/
private $Socket;
@@ -112,8 +118,8 @@
public function __construct( )
{
- $this->Buffer = new SourceQueryBuffer( );
- $this->Socket = new SourceQuerySocket( $this->Buffer );
+ $this->Buffer = new Buffer( );
+ $this->Socket = new Socket( $this->Buffer );
}
public function __destruct( )
@@ -530,13 +536,13 @@
{
case SourceQuery :: GOLDSOURCE:
{
- $this->Rcon = new SourceQueryGoldSourceRcon( $this->Buffer, $this->Socket );
+ $this->Rcon = new GoldSourceRcon( $this->Buffer, $this->Socket );
break;
}
case SourceQuery :: SOURCE:
{
- $this->Rcon = new SourceQuerySourceRcon( $this->Buffer, $this->Socket );
+ $this->Rcon = new SourceRcon( $this->Buffer, $this->Socket );
break;
}
diff --git a/SourceQuery/SourceRcon.class.php b/SourceQuery/SourceRcon.php
similarity index 89%
rename from SourceQuery/SourceRcon.class.php
rename to SourceQuery/SourceRcon.php
index c2fc518..7e6e03f 100644
--- a/SourceQuery/SourceRcon.class.php
+++ b/SourceQuery/SourceRcon.php
@@ -1,28 +1,43 @@
*
- * Website: https://xpaw.me
- * GitHub: https://github.com/xPaw/PHP-Source-Query-Class
+ * @link https://xpaw.me
+ * @link https://github.com/xPaw/PHP-Source-Query-Class
+ *
+ * @license GNU Lesser General Public License, version 2.1
+ *
+ * @internal
*/
+
+ namespace xPaw\SourceQuery;
use xPaw\SourceQuery\Exception\AuthenticationException;
use xPaw\SourceQuery\Exception\TimeoutException;
use xPaw\SourceQuery\Exception\InvalidPacketException;
-
- class SourceQuerySourceRcon
+
+ /**
+ * Class SourceRcon
+ *
+ * @package xPaw\SourceQuery
+ *
+ * @uses xPaw\SourceQuery\Exception\AuthenticationException
+ * @uses xPaw\SourceQuery\Exception\TimeoutException
+ * @uses xPaw\SourceQuery\Exception\InvalidPacketException
+ */
+ class SourceRcon
{
/**
* Points to buffer class
*
- * @var SourceQueryBuffer
+ * @var Buffer
*/
private $Buffer;
/**
* Points to socket class
*
- * @var SourceQuerySocket
+ * @var Socket
*/
private $Socket;
diff --git a/SourceQuery/bootstrap.php b/SourceQuery/bootstrap.php
new file mode 100644
index 0000000..63885d7
--- /dev/null
+++ b/SourceQuery/bootstrap.php
@@ -0,0 +1,27 @@
+
+ *
+ * @link https://xpaw.me
+ * @link https://github.com/xPaw/PHP-Source-Query-Class
+ *
+ * @license GNU Lesser General Public License, version 2.1
+ */
+
+ require_once __DIR__ . '/Exception/SourceQueryException.php';
+ require_once __DIR__ . '/Exception/AuthenticationException.php';
+ require_once __DIR__ . '/Exception/InvalidArgumentException.php';
+ require_once __DIR__ . '/Exception/SocketException.php';
+ require_once __DIR__ . '/Exception/InvalidPacketException.php';
+ require_once __DIR__ . '/Exception/TimeoutException.php';
+
+ require_once __DIR__ . '/Buffer.php';
+ require_once __DIR__ . '/Socket.php';
+ require_once __DIR__ . '/SourceRcon.php';
+ require_once __DIR__ . '/GoldSourceRcon.php';
+ require_once __DIR__ . '/SourceQuery.php';
diff --git a/composer.json b/composer.json
index 4496722..f893033 100644
--- a/composer.json
+++ b/composer.json
@@ -17,9 +17,8 @@
},
"autoload":
{
- "files":
- [
- "SourceQuery/SourceQuery.class.php"
- ]
+ "psr-4": {
+ "xPaw\\SourceQuery\\": "SourceQuery/"
+ }
}
}