Jednotný přístup k parametrům v latte
- Oli
- Člen | 1215
Ahoj,
má latte něco jako twig, kdy se chová stejně k objektu i k poli? Jde mě
o to, že bych nechtěl na úrovni syntaxe řešit, jestli mám v proměnné
pole nebo objekt. V twigu to je přes tečkovou notaci, takže nějak
takhle:
{$article->getTitle()}
// ekvivalent
{$article.title}
{$article['title']}
// ekvivalent
{$article.title}
Je tohle nějak možný? Nějakej plugin? Nějakej nápad jak to implementovat?
- David Matějka
- Moderator | 6445
n, nic takoveho latte nema. ale byly tu pred nejakou dobou ohledne toho ruzne diskuze. Problem je, ze to ma celkem podstatny dopad na performance behem runtime. (A krom toho, tecka by byla problematicka, jelikoz by se to blbe rozpoznavalo od concat operatoru)
nejakym extension by se to snadno rozsirit asi nenechalo. tahle transformace by se nejlepe provadela v phpwriteru, ktery neni snadno rozsiritelny. Ale udelat, aby byl rozsiritelny pro ruzne custom preprocessory by nemuselo byt slozite.
- Oli
- Člen | 1215
Díky za odpověď. Ona by to nemusela být tečka, je to celkem jedno. Spíš jde o to, aby ten přístup byl stejný.
Ale udelat, aby byl rozsiritelny pro ruzne custom preprocessory by nemuselo byt slozite.
Tohle, jestli to chápu dobře je na zásah přímo do latte, že? Navic by se to udělalo jen jednou a uložilo do cache?
Napadlo mě, že takový workaround by mohl být, pokud bych všechny pole
převáděl na ArrayHash. Ale nevím, jestli tam pak nebude nějaký znatelný
zpomalení programu (a nepřijde mě to zrovna systémový)… Pak bych se ke
všemu dostal přes ->
.
- David Matějka
- Moderator | 6445
Tohle, jestli to chápu dobře je na zásah přímo do latte, že?
ano
Navic by se to udělalo jen jednou a uložilo do cache?
n, v compile time nevis, jaka data ti prijdou do sablony, takze je potreba to resit vzdy v runtime
- David Kudera
- Člen | 455
Runtime je jednoduše každý request na tu danou stránku, compile time je když se ti kompiluje latte do php (generuje se cache).
Ty data se ale můžou request od request měnit, takže se musíš rozhodovat pokaždé znovu, jaký přístup použít (v runtime).