31 lines
990 B
PHP
31 lines
990 B
PHP
<?php
|
|
namespace Mince;
|
|
|
|
use Index\Data\{DbStatementCache,IDbConnection};
|
|
|
|
class Servers {
|
|
//private IDbConnection $dbConn;
|
|
private DbStatementCache $cache;
|
|
|
|
public function __construct(IDbConnection $dbConn) {
|
|
//$this->dbConn = $dbConn;
|
|
$this->cache = new DbStatementCache($dbConn);
|
|
}
|
|
|
|
public function getServers(
|
|
?bool $deleted = null
|
|
): iterable {
|
|
$hasDeleted = $deleted !== null;
|
|
|
|
$query = 'SELECT server_id, server_name, server_details, server_java_address, server_java_version, server_bedrock_address, server_bedrock_version, UNIX_TIMESTAMP(server_created), UNIX_TIMESTAMP(server_deleted) FROM servers';
|
|
if($hasDeleted)
|
|
$query .= sprintf(' WHERE server_deleted %s NULL', $deleted ? 'IS NOT ' : 'IS');
|
|
$query .= ' ORDER BY server_order';
|
|
|
|
$stmt = $this->cache->get($query);
|
|
$stmt->execute();
|
|
|
|
return $stmt->getResult()->getIterator(ServerInfo::fromResult(...));
|
|
}
|
|
}
|