php - How can I make this code into a class so I can reuse it? -
i using xpaw's minecraft query: https://github.com/xpaw/php-minecraft-query
i made function can connect our servers, problem have multiple servers, have copy , paste function , rename function , other parts of code can connect other servers.
function get_mq_query() { define( 'mq_server_addr', '1stserver.com' ); define( 'mq_server_port', 25565 ); define( 'mq_timeout', 1 ); // require bloginfo('template_url') . 'inc/avatars/minecraftquery.class.php'; require __dir__ . '/mcquery/minecraftquery.class.php'; // display in browser, because people can't in logs errors error_reporting( e_all | e_strict ); ini_set( 'display_errors', true ); $timer = microtime( true ); $query = new minecraftquery( ); try { $query->connect( mq_server_addr, mq_server_port, mq_timeout ); } catch( minecraftqueryexception $e ) { $error = $e->getmessage(); echo 'error. <br>'. $error; } return $query; }
i'd pass array class , call
$mcquery = new mcquery(); // define servers $server = [ '1server' => '1.server.com', '2server' => '2.server.com', '3server' => '3.server.com', '4server' => '4.server.com' ];
calling this:
status: <?php echo $mcquery->getstatus($server['1server']); ?>
i'm not sure how around doing though. how can that?
require __dir__ . '/mcquery/minecraftquery.class.php'; class yourclass { protected $_query; public function __construct($host, $port, $timeout=1) { $timer = microtime( true ); $query = new minecraftquery( ); try { $query->connect( $host, $port, $timeout ); } catch( minecraftqueryexception $e ) { $error = $e->getmessage(); echo 'error. <br>'. $error; } $this->_query = $query; } public function getplayers() {/*...*/} public function getversion() {/*...*/} } $connect = new yourclass('1.server.com', 25564); /* etc ... */
Comments
Post a Comment