- BDD (migrations 1.6.0 + 1.7.0, idempotentes) :
* 4 nouveaux index composites sur reactevents, triggerevents, sessions
* vue sessiondebriefs reecrite (sous-requetes correlees -> JOINs)
puis materialisee dans table session_debriefs_cache via procedure
stockee rebuild_debrief_cache, recalculee uniquement aux changements
* fix bug double JOIN participates : TargetRole = "IA" pour les hits
NPC/objets (au lieu d'un role aleatoire de participant)
- API PHP :
* connexion PDO en singleton + ATTR_PERSISTENT
* cache disque par session (cache/sess_<id>/) pour debrief, get, userhistory
avec invalidation ciblee sur events et lifecycle
* pagination opt-in (limit/offset) sur lists/sessions_for_user
* helpers ensure_/rebuild_/invalidate_session_debrief_cache_db
* debug/benchmark.php pour mesurer la latence des 6 endpoints cles
- Endpoints HTTP : signatures inchangees, compat Unreal preservee
- Gain mesure : -58% a -83% sur les 5 endpoints cles
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
41 lines
1.3 KiB
PHP
41 lines
1.3 KiB
PHP
<?php
|
|
class Database
|
|
{
|
|
// specify your own database credentials
|
|
private $host = "localhost"; //Server
|
|
private $db_name = "ProserveAPI"; //Database Name
|
|
private $username = "root"; //UserName of Phpmyadmin
|
|
private $password = ""; //Password associated with username
|
|
public $conn;
|
|
|
|
// shared connection re-used across endpoint includes within a single request,
|
|
// and (with PDO::ATTR_PERSISTENT) across requests within an Apache child process.
|
|
private static $sharedConn = null;
|
|
|
|
// get the database connection
|
|
public function getConnection()
|
|
{
|
|
if (self::$sharedConn === null)
|
|
{
|
|
try
|
|
{
|
|
self::$sharedConn = new PDO(
|
|
"mysql:host=" . $this->host . ";dbname=" . $this->db_name,
|
|
$this->username,
|
|
$this->password,
|
|
[PDO::ATTR_PERSISTENT => true]
|
|
);
|
|
self::$sharedConn->exec("set names utf8");
|
|
}
|
|
catch(PDOException $exception)
|
|
{
|
|
echo "Connection error: " . $exception->getMessage();
|
|
return null;
|
|
}
|
|
}
|
|
$this->conn = self::$sharedConn;
|
|
return self::$sharedConn;
|
|
}
|
|
}
|
|
?>
|