Patrick Canterino: Template-Cache am besten speichern

Beitrag lesen

Hallo Klaus,

=== 1 ===
Also falls die Datei bereits vorhanden ist, soll der Script per CHMOD die Rechte der vorhandenen Datei ändern (auf 777), falls diese Datei noch Schreibgeschützt ist.
Danach wird per fopen("datei","w") + fwrite(); die Datei geöffnet und die neue Version gespeichert.

Hier musst du bedenken, dass chmod() unter Umständen fehlschlägt, weil dem Apache-Prozess die Cache-Datei aus irgendeinem Grund nicht gehören könnte.

=== 2 ===
Per unlink(); lösche ich die alte Cache Datei zuerst, und erstelle dann per fopen(); + fwirte(); die neue Datei.

Hier hast du das Problem einer Race Condition. Was passiert, wenn ein anderer Prozess auf die Cache-Datei zugreifen will, nachdem sie gelöscht wurde? Mit file_exists() oder is_file() wirst du hier nicht viel ausrichten können, da ja kurz nach der Abfrage die Datei gelöscht worden sein könnte.

Methode 1 ist vielleicht die bessere, wenn du das chmod() weglässt und evtl. auch mit flock() arbeitest.

Viele Grüße
  Patrick Canterino

--
"Niemand hat die Absicht, eine Mauer zu errichten." (Walter Ulbricht, kurz vor dem Mauerbau)