Seite 1 von 1

phpBB3 Cache funktion verwenden

Verfasst: Do 04.Nov, 2010 22:13
von MADxHAWK
Hallo zusammen,

Ich würde gerne die Daten eines Shoutcastservers abfragen, z.b. alle 15 sekunden und diese per Ajax automatisch auf der Website aktualisieren.
Damit aber nicht alle 15 sek. für jeden User der auf der Seite ist eine Abfrage an den Shoutcast geschickt wird würde ich die Daten gerne Cachen, phpBB3 hat ja dafür wohl schon eine Funktion. Leider fand ich jedoch nichts wirklich hilfreiches. Deshalb hier mal meine Frage ob ich es so richtig gelöst habe.

Code: Alles auswählen


$cache = new cache('_shoutcast');

if (!$cache->get('_shoutcast') 
{
    // daten holen und in ein array schreiben
    // curl verbindung
    // array zusammenstellen

    $sc_data = array ('key_1' => 'value_1', 'key_2' => 'value_2', 'key_n' => 'value_n');

    $cache->put('_shoutcast', $sc_data, 15);
}
else
{
    $sc_data = cache->get('_shoutcast');
}

Dies scheint so zu funktionieren, bin mir aber nicht sicher ob dies so richtig ist.
Ferner würde ich gern einen Sendeplan cachen, der aus einem recht grossen Array zusammegesetzt ist. Hierfür müsste ich jedoch die gecachten Daten bei einer änderung am Sendeplan neu in den cache schreiben und da habe ich noch keine wirkliche idee wie ich dies bewerkstelligen soll.

Wäre für jede hilfe dankbar.

Gruss
Martin

Re: phpBB3 Cache funktion verwenden

Verfasst: Fr 05.Nov, 2010 04:51
von AmigaLink
Ja dein Code ist richtig.
Ferner würde ich gern einen Sendeplan cachen, der aus einem recht grossen Array zusammegesetzt ist. Hierfür müsste ich jedoch die gecachten Daten bei einer änderung am Sendeplan neu in den cache schreiben und da habe ich noch keine wirkliche idee wie ich dies bewerkstelligen soll.
Dafür musst du bei Änderungen am Sendeplan lediglich den Cache (also das entsprechende Cache-File) löschen. Das machst du mit $cache->destroy('_shoutcast');

Da dies aber natürlich nur geht wenn das Objekt $cache existiert, nenne ich dir noch eine einfache alternative.
Du hast deinen Shoutcast-Cache den Namen _shoutcast gegeben. Die dazugehörige Cache-Datei (welche sich im Cache-Ordner befindet) ist somit data_shoutcast.php.
Mit @unlink($phpbb_root_path . 'cache/data_shoutcast.' . $phpEx); löschst du diese Datei, was natürlich den Effekt hat das der Cache neu erstellt wird wenn dein obiger Code aufgerufen wird. :)

Re: phpBB3 Cache funktion verwenden

Verfasst: Fr 05.Nov, 2010 16:51
von MADxHAWK
Hab herzlichen dank, dies hilft mir schon sehr weiter. :)