← Uz sākumu

Par PHP templeitiem

2004. gada 3. februārī, 4 komentāri

Manuprāt, labākais vidusceļš starp divām galējībām - jaunu templeitu valodu un vienkāršu PHP koda inklūdēšanu ir apmēram sekojošs.

Pieņemsim, ka mums ir šāds imaginārs templeits, kurš izvada mainīgā $viens vērtību un pēc tam cikliski izvada viendimensionāla masīva $array vērtības kā sarakstu:

{$viens}
<ul>
{foreach($array as $v)}
  <li>{$v}</li>
{end_foreach}
</ul>

It kā bezjēdzīgi, ne? To pašu var uzrakstīt iekš PHP un tas strādās daudz ātrāk. Taču, šajā gadījumā mums ir viena maza priekšrocība. Iespēja šo, kā sacīt jāsaka, templeitu nokompilēt uz PHP kodu, kā vien mums ir nepieciešams, lai gala lietotājam nebūtu jāraksta visuresošās pārbaudes.

Piem., ja mēs nezinām, vai mums $array vispār ir izveidots, vai arī tas maz ir masīvs, mūsu vēl imaginārāka templeitu sistēma uzģenerē apmēram sekojošu PHP kodu, kuru tad ar vieglu sirdi pēcāk arī inklūdēt visur, kur nepieciešams:

<? if (isset($viens)) { echo $viens; } ?>
<ul>
<? if (isset($array) && is_array($array) && count($array) { ?>
  <? foreach ($array as $v) { ?>
    <li><?=$v?></li>
  <? } ?>
<? } ?>
</ul>

Ja nu kāds gadījumā saprata, par ko es runāju un havo citu viedokli, laipni lūgtum komentāros (kā vienmēr:)

Apmēram šāda ideoloģija ir realizēta iekš PEAR::HTML_Template_Xipe

P.S. Starp citu, laikam jau varu izsniegt ķengāšanai. Mana temporārā implementācija.

Tu atbildi augstāk redzamajam komentāram. Atcelt

Gravatar sklp

2004. gada 3. februārī, plkst. 00:37

Vidusceļš starp divām galējībām - inklūdi un templeitu valodu būtu vēl viens php parseris?

Gravatar misame

2004. gada 3. februārī, plkst. 08:42

Tā notice, kas tur beigās rādās (temporārās implementācijas lapā), viņai tā jābūt?

Gravatar laacz

2004. gada 3. februārī, plkst. 08:43

misame: ugu. Lai nodemonstrētu, ka variablis nav iesetots.

Gravatar Delf

2004. gada 3. februārī, plkst. 10:35

ideja skaidra. bet manuprat likt ciklus ieksh templeita ir garam, bet dazreiz iisti vietaa.

piemeram mums ir menu : home, about, login, my data

pedejos divus jaapasleepj attieciigi,- ielogies vai nee.

tas noziimee ka mums vel tas masiivs jauztaisa (foreach_1), un tad jaaiedzen iekshaa templeitaa (foreach_2).

un prasaas arii pec IFiem un etc. galu galaa, sanaks taac pats smagnejs objekc :)

/me paliek pie single var/const ieksh templeitiem