Alternativ mallsyntax
=====================
Yii tillåter urvecklare att använda sin egen favoritmallsyntax (t.ex. Prado,
Smarty) för att skriva kontroller- eller widgetvyer. Detta uppnås genom att
skriva och installera en applikationskomponent,
[viewRenderer|CWebApplication::viewRenderer]. Vyrenderaren fångar upp
invokeringar av [CBaseController::renderFile], kompilerar vyfilen med anpassad
mallsyntax, och renderar de kompilerade resultaten.
> Info: Det rekommenderas att anpassad mallsyntax bara används till att skriva
vyer som med liten sannolikhet kommer att återanvändas. I annat fall kommer
personer som återanvänder vyerna att tvingas använda samma anpassade mallsyntax i
sina applikationer.
I det följande, introduceras hur man använder [CPradoViewRenderer], en
vyrenderare som tillåter utvecklare att använda en mallsyntax snarlik den i
[Prado-ramverket](http://www.pradosoft.com/). För personer som vill utveckla
sina egna vyrenderare, är [CPradoViewRenderer] en bra referens.
Använda `CPradoViewRenderer`
----------------------------
För att använda [CPradoViewRenderer], behöver man konfigurera applikationen som följer:
~~~
[php]
return array(
'components'=>array(
......,
'viewRenderer'=>array(
'class'=>'CPradoViewRenderer',
),
),
);
~~~
Som standard, kommer [CPradoViewRenderer] att kompilera vyfilernas källkod och
spara de resulterande PHP-filerna i
[runtime](/doc/guide/basics.convention#directory)-katalogen. bara när vyfilernas
källkod har ändrats, kommer PHP-filerna att genereras på nytt. Därför åsamkar
[CPradoViewRenderer] mycket liten prestandaförlust.
> Tip|Tips: Medan [CPradoViewRenderer] huvudsakligen introducerar ett antal nya
mall-taggar för att göra det lättare och snabbare att skriva vyer, kan man
fortfarande skriva PHP-kod precis som vanligt i vyernas källkod.
I det följande introduceras de mall-taggar som stöds av [CPradoViewRenderer].
### Korta PHP-taggar
Korta PHP-taggar är kortformer för att skriva PHP-uttryck och -satser i en vy.
Uttrycks-taggen `<%= expression %>` översätts till ``;
medan sats-taggen `<% statement %>` översätts till ``. Till
exempel,
~~~
[php]
<%= CHtml::textField($name,'value'); %>
<% foreach($models as $model): %>
~~~
översätts till
~~~
[php]
~~~
### Komponent-taggar
Komponent-taggar används för att infoga en
[widget](/doc/guide/basics.view#widget) i en vy. De använder följande syntax:
~~~
[php]