Visa ett inlägg
Oläst 2010-12-09, 21:01 #1
qson qson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Sep 2006
Inlägg: 513
qson qson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Sep 2006
Inlägg: 513
Standard Cache-filer med PHP

Hej,
Jag håller på med ett cache-system till ett projekt. Min applikation läser in "originalfilen" och skapar utifrån denna en php-fil som skriver ut innehållet.

Exempel:

Min original-fil:
HTML-kod:
<div class="content">
  <p>Namn: {name}</p>
</div>
Genererad php-kod:
PHP-kod:
<?php defined('IN_APP') or die('Access denied'); ?>
<div class="content">
  <p>Namn: <?php echo $name?></p>
</div>
Dessa cachefiler läses in direkt i min "huvud-template" med include() för att skriptet skall vara så resurssnålt som möjligt.
Jag använder inte output-buffering.

Vad jag nu vill ha är möjlighet att i min cache-fil lägga in en variabel (t.ex. $title) som skall vara tillgänglig "tidigare" i skriptet (när sidhuvudet skrivs ut).

Jag har kommit fram till några alternativ:

1.
Omsluta min HTML-kod med en php-funktion, output().
Läsa in cachefilen innan sidhuvudet skrives ut och således komma åt $title-variabeln.
När innehållet skall skrivas ut anropas ovanstående funktion, output().

2.
Ha två separata cache-filer: En för titelvariabeln och en för innehållet och läsa in dessa separat där de behövs.

3.
Ha en cache-fil som agerar både title och content beroende på var den anropas:
PHP-kod:
<?php defined('IN_APP') or die('Access denied'); 
if (isset(
$getTitle) && $getTitle)
    return 
'Sidrubriken';
?>
<div class="content">
  <p>Namn: <?php echo $name?></p>
</div>
När jag skall hämta titeln sätter jag först $getTitle = true och inkluderar filen. När jag sedan skall ha innehållet sätter jag $getTitle = false och inkluderar filen igen.

---

Vilket av ovanstående (eller kanske en annan lösning) rekommenderar ni?

Andra synpunkter?
qson är inte uppkopplad   Svara med citatSvara med citat