In F3 Framework Controller ho scritto una funzione per verificare se i dati MySql sono salvati in un file, altrimenti caricando un modulo per chiedere agli utenti tali dati (simile all'installazione di Wordpress).
Questa funzione viene caricata ogni volta che viene chiamata una pagina / metodo:
abstract class Controller
{
/* F3 */
protected $f3;
protected $file_configuration = 'setup.cfg';
function __construct()
{
$f3 = Base::instance();
$this->f3 = $f3;
$this->setDatabase();
$this->setup();
}
}
e setDatabase()
è un semplice:
private function setDatabase()
{
$search = 'TEST';
$file = $this->file_configuration;
// Read from file
$lines = file('app/config/'.$file);
$found = false;
foreach($lines as $line)
{
// Check if the line contains the string we're looking for, and print if it does
if(strpos($line, $search) !== false)
{
$found = true;
}
}
if ($found===false)
{
$fh = fopen('app/config/'.$file, 'a') or die("can't open file");
$stringData = "\n";
fwrite($fh, $stringData);
$stringData = "New Stuff 1";
fwrite($fh, $stringData);
$stringData = "\n";
fwrite($fh, $stringData);
$stringData = "New Stuff 2";
fwrite($fh, $stringData);
fclose($fh);
}
}
(Si prega di non vedere i valori delle variabili ... solo test al momento); -)
La mia domanda è:
Altre classi iniziano ad estendere il controller, metterò a dura prova il mio server che legge ogni volta il file?
Puoi suggerirmi un approccio migliore?
Immagina wordpress: penso che ogni volta che chiami la pagina, controlla se il database esiste / è configurato correttamente, altrimenti interrompi / chiedi dati di connessione (nome utente, password, ecc.)