Puoi analizzare il tuo schema.xml con simplexml di PHP.
$xml = simplexml_load_file('schema.xml');
$tableExists = 0 < count($xml->xpath("table[@phpName='$tableName']"));
Non dimenticare di filtrare l'input degli utenti per $tableName
, altrimenti è possibile inserire la propria query in xpath. Per avere prestazioni migliori dovresti memorizzare nella cache i risultati.
Ancora meglio sarebbe se crei una mappa hash con tutte le tabelle basate sul tuo schema.xml
, memorizza nella cache questa mappa hash e controllala ogni volta.
$hashMap = $foo->getCache('tables');
if (!$hashMap) {
$xml = simplexml_load_file('schema.xml');
$tables = $xml->xpath("table");
foreach ($tables as $table) {
$hashMap[$table['phpName']] = true;
}
$foo->setCache('tables', $hashMap);
}
$tableExists = isset($hashMap[$tableName]);
In questo caso non è proprio necessario filtrare l'input dell'utente.