Schema.xml můžete analyzovat pomocí simplexml PHP.
$xml = simplexml_load_file('schema.xml');
$tableExists = 0 < count($xml->xpath("table[@phpName='$tableName']"));
Nezapomeňte filtrovat vstup uživatelů na $tableName
, jinak je možné vložit vlastní dotaz do xpath. Chcete-li mít lepší výkon, měli byste své výsledky uložit do mezipaměti.
Ještě lepší by bylo, kdybyste vytvořili hash mapu se všemi tabulkami na základě vašeho schema.xml
, uložte tuto hash mapu do mezipaměti a pokaždé ji porovnejte.
$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]);
V tomto případě není opravdu nutné filtrovat vstup uživatele.