Du kan parse dit schema.xml med PHP's simplexml.
$xml = simplexml_load_file('schema.xml');
$tableExists = 0 < count($xml->xpath("table[@phpName='$tableName']"));
Glem ikke at filtrere brugernes input til $tableName
, ellers er det muligt at indsætte egen forespørgsel i xpath. For at få bedre ydeevne bør du cache dine resultater.
Endnu bedre ville være, hvis du opretter et hash-kort med alle tabeller baseret på dit schema.xml
, cache dette hash-kort og tjek mod dette hver gang.
$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]);
I dette tilfælde er det egentlig ikke nødvendigt at filtrere brugerens input.