Template Engine Felépítése
2009-07-15T19:34:09+02:00
2009-10-05T14:12:30+02:00
2022-07-19T05:02:59+02:00
  • Szerintem mi két külön dologról beszélünk.
    Mutasd a teljes hozzászólást!
  • Ha jól meg van írva a html framework, akkor 1 egyszerű css cserével könnyen megoldható a tempelate váltása, vagy csak minimálisan kell csak átírni a frameworkot. Hozz létre egy szabványt tervezd meg mi az ami feltétlenül szükséges az oldal kialakításához. Én is így használom, nekem is van saját cms rendszerem, gyors, viszonylag 1szerű hozzá templatet készíteni, és pofonegyszerű a felépítése.
    Mutasd a teljes hozzászólást!
  • Általában a template fájlokat jobb lefordítani php-re ( még a függvény hívásokat is ), aztán utána a kapott kódot includolni. Biztos, hogy gyorsabb lesz.
    Mutasd a teljes hozzászólást!
  • Kompromissziumok nélkül ez nem is fog menni, hiszen ha valaki csak HTML-t érti, az smarty-hoz is nehezzen ír sablont. Szóval, ha a php-s változatot használod? akkor minimálisan át kell futnia a számára lényeges részeket php-ban, hogy megértse, mi miért. Ha viszont a smarty-t használod, akkor a smarty-t kell elsajátítania hozzá. Ugyanez lenne ha sajátot írnál, elvégre az hogy tiszta html legyen elötte, az nem valószínű, hogy összejön. Lásd, WordPress az is php-val sablonozik és be is vált nekem például nagyon tetszik. Ha belenézek, mindig derűl a szívem.
    Mutasd a teljes hozzászólást!
  • Ismerem, már olvastam ( az angolt preferálom ). Értem a lényegét de erre ráültetni egy komplett rendszert. Azthiszem erre rá kell állom egyről a kettőre nem fog menni.
    Ha jól értem a View réteg feladata annyi, hogy gondoskodik a megjelenítésről.
    A Controller várja a felhasználótól az adatokat és továbbitja azokat a modell-nek, ami feldolgozza elvégzi a feladatát és adja a választ a View-nak.


    Na én egy ilyet akartam összedobni templatelő tekintetében de szvsz ilyen formában lassú. Valószínűleg mégis maradok akkor ennél a megoldásnál. Azonban még mindig nemlátom a fától az erdőt. Hogy segít ez nekem abban, hogy olyan rendszert írjak amihez aztán mások is tudnak design-t írni. HTML-hez okés személy de php-hez satu. HA televágom a View-t php-vel akkor egy laikus meg van lőve. Direkt ezért akartam meghagyni a HTML-t úgy ahogy van és egyszer {@blabla} módon berakni egy réteget. Ez lett volna ugye a Controller ami már továbbította volna a kéréseket a natív PHP-hoz ami a modell szerepét tölti be. A View pedig ugye maga a tlp fájl.
    Tehát ez így ilyen módon MVC -nek megfelelő csak valamit elbasszintottam a tervezés során mert ugye irdatlan lassú. Ezért is vagyok kíváncsi mások véleményére, hogy hogy oldják meg?
    Mutasd a teljes hozzászólást!
  • Az MVC-ről van egy elég kóser leírás a Wikipedia-n, de angolul:
    Model-view-controller - Wikipedia, the free encyclopedia

    Meg van a magyar, szűkszavú verzió is:
    Modell-nézet-vezérlő - Wikipédia
    Mutasd a teljes hozzászólást!
  • oké azért ettől már kicsit tovább járok mintsem minden második elem sötétebb, a Moduló operátort meg ismerem . Az MVC-nek utánnanézek .
    Mutasd a teljes hozzászólást!
  • Nem értek veled egyet. Nézz utána az MVC-nek. Te is valami ilyesmit akarsz megvalósítani, csak nem tudod, hogy ez az. Ennek az a lényege, hogy teljesen szétválassza a 3 alaprészt egymástól, vagyis az adatmodelleket (Model), a megjelenítő template-eket (View) és az ezen két réteget vezérlő kódot (Control). De az MVC nem mondja azt ki, hogy egy adott programozási nyelvet (ami ezesetben a PHP) nem használhatsz mindhárom rétegben. Ezt lehet, és mivel az MVC alapból szétválasztja a megjelenítést minden mástól, így igen egyszerű alatta design-t cserélni, ha úgy adódik. A példában pedig direkt azért mutattam egy olyan listára példát, amelyben minden második listaelem sötétebb háttérszínű lehet, hogy lásd, hogy a PHP-be épített maradékképzés (% operátor) mennyire jól használható a célra. Ezt nehéz lesz mással kiváltani, ami egyben lassítani is fog.

    Mindettől eltekintve egyébként engem is érdekel a téma, de engem nem azért, hogy meg is csináljam, hanem azért, hogy új trükköket, módszereket lessek el más programozóktól.
    Mutasd a teljes hozzászólást!
  • Mert teljesen ketté akarom választani a php kódot a design kódjától. Vagyis pont azt akarom kikerülni, hogy:
    <ul> <?php foreach($array as $key => $value) { ...?> <li> <?php .....
    Egy helyen akarom tartani a rendszerem design-jét és egy helyen a php-t ami szépen teszi a dolgát. beléptet regisztrál készletet nyilván tart számlát készít felhasználók üzeneteit továbbítja hozzászólásokat listázza és még sorolhatnám.
    Csak annyi a bajom, hoyg vakon megírtam egy rendszert összevissza a html és php részek, és a gond akkor jött elő amikor azt mondták, hogy neharagudj már más kinézetet szeretnék.... Jött arémálom 3hónap egy új design... a HTML-ben PHP ciklusok feltételek a PHP fájlokben HTML megjelenítések.... Mire kihámozza az ember beleőszül. Ezt akarom kikerülni a jövőben. Egy helyen a megjelenítés, 1helyen a kezelő.

    Igen tisztában vagyok azzal, hogy a php-t alapból templatezésre hozták be de mára azért már sok másra is jó.
    Mutasd a teljes hozzászólást!
  • Szeretném megkérdezni, hogy a PHP-t miért akarod kizárni a template-ezésből, ha te magad is mondtad, hogy ezzel növekedni fog a renderelési idő? Tudtad például, hogy a PHP-t eredetilg template-ezésre találták ki? Van is neki egy erre használatos szintaxisa. Pl.:

    Programozásra használt szintaxis:
    <ul> <?php foreach($array as $key => $value) { if ($key % 2 == 0) { print '<li class="sotetebb">$value</li>'; } else { print '<li class="vilagosabb">$value</li>'; } } ?> </ul>

    Template-ezésre használt szintaxis:
    <ul> <?php foreach($array as $key => $value): ?> <?php if ($key % 2 == 0): ?> <li class="sotetebb">$value</li> <?php else: ?> <li class="vilagosabb">$value</li> <?php endif; ?> <?php endforeach; ?> </ul>

    Ha aggódsz a sebesség miatt, miért nem a PHP-t használod a template-ezése? Minek ehhez külön engine-t írni?

    Egy időben én is sokat használtam a Smarty-t, mert nagyon jól áttekinthető template kódot lehet vele csinálni, de miután muszájból megszoktatták velem, hogy a PHP template-ezésre is használatos, azóta nem vágyom vissza a Smarty-ra. Tudom, fura egy kicsit a szintaxis, de kis gyakorlattal hamar megszokható.

    Szóval akkor ismét visszakérdezek: Miért kell kizárni a PHP-t a template-ezésből?
    Mutasd a teljes hozzászólást!
  • Üdv,

    Úgy gondoltam meghallgatom mások véleményét is a témával kapcsolatban, mert eléggé elbizonytalanodtam. Hozzáfogtam írni egy template engine -t mert személyszerint nincs humorom egyéb framework-ök használatához. A koncepcióm nagyon egyszerű. A template fájlomban ahol a php-nek kell később ügyködnie {@azon} formában helyezek el hívásokat. A template engine megkeresi ezeket és a megfelelő helyen meghívja a megfelelő php funkciókat. Így kiszűröm a <?php ?> illetve a <script> tagokat a template fájlokból de irdatlan sok sebességet vesztek vele. Persze még nem végleges de ha már ilyen lassú mi lenne később?
    Szóval ezzel kapcsolatban érdeklődnék, hogy ki milyen alternatívákat ismer? A Smarty és társait kivéve mert mindenképpen egyénit akarok fejleszteni . Természetesen linkek is jöhetnek bár már elég sokat olvastam a témával kapcsolatban.
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd